自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 【Linux】——手撕线程池、简易线程池

在现代计算机编程领域,随着多核处理器和分布式系统的广泛应用,并发编程变得越来越重要。而线程作为实现并发的基本手段之一,其重要性不言而喻。然而,在实际的应用开发中,如何高效地管理和调度线程,以充分利用系统资源并提高程序的性能,一直是一个具有挑战性的问题。线程池作为一种被广泛应用的解决方案,为解决这一难题提供了一种优雅而有效的方法。它通过预先创建一定数量的线程,并合理地分配和管理任务,避免了频繁创建和销毁线程所带来的开销,同时也能更好地控制和协调线程的执行,从而显著提高程序的并发性能。

2025-04-04 10:17:18 465 2

原创 【C++】——这一篇彻底弄懂智能指针,再也不怕面试

智能指针是一个可以帮我们管理动态分配内存的一个类智能指针就像一个保姆或者管家,对指定内存进行一条龙管理我们只需要将需要管理的内存传递给它,智能指针接收后,就会对该内存进行管理正常这些管理都是我们手动管理的,有了智能指针,它就会帮我们搞定一切你再也不用担心delete了,智能指针会自动帮你delete就相当于给动态分配的内存找了一个保姆,我们再也不用瞎操心你只需要将内存交给它即可,一切的一切都由它来安排今天我们主要介绍三个智能指针类由C++98推出的auto_ptr。

2025-03-28 17:23:12 606 37

原创 【Linux网络】——Socket网络编程

在当今数字化的时代,网络通信已经成为计算机领域不可或缺的一部分。无论是日常的网页浏览、社交媒体交互,还是大规模的企业级数据传输,都离不开高效可靠的网络通信。而在Linux操作系统中,Socket网络编程是实现各种网络应用的基础技术。通过使用Socket编程,开发人员可以在不同的计算机之间建立连接,实现数据的发送和接收,为各种网络应用程序的开发和部署提供了强大的支持。

2025-03-26 18:08:24 960 8

原创 【Linux线程】——线程同步&&线程互斥

在计算机系统这个庞大而复杂的数字宇宙中,线程如同繁星般繁多且活跃。它们各自在自己的轨道上运行,承载着数据处理、任务执行的重任。然而,就像现实世界中的天体有时会相互靠近、碰撞,线程之间也会因为资源的共享和交互而产生一系列的“碰撞”问题。在这样的背景下,线程同步和互斥就像是这个宇宙中的引力法则和空间规则,保障着线程们的有序运行,避免混乱和冲突。让我们一同踏上探索线程同步与互斥的奇妙之旅,揭开它们神秘的面纱。Linux线程的互斥与同步是一个充满挑战与魅力的技术领域。

2025-03-25 16:40:28 1241 32

原创 【C++】——C++11新特性

C++,这门在系统开发、游戏开发、嵌入式等众多领域都占据主导地位的编程语言,一直在不断进化。C++11就像是C++家族中的一颗璀璨明星,闪耀着无数令人惊叹的新特性。如果你还在使用传统的C++编码方式,那你可能正在错过许多现代编程的便捷与高效。想象一下,用更少的代码编写出性能更高的程序,轻松应对复杂的并发场景,还能享受更加简洁和安全的内存管理。C++11就能让这一切成为现实。在这篇博文中,我会一点点揭开C++11新特性的神秘面纱,让你看到C++在这次重大更新之后所蕴含的无限潜力。

2025-03-24 15:43:48 1229 50

原创 【Linux线程】——线程概念&&线程接口

在当今复杂而高效的计算机系统中,多任务处理已经成为了不可或缺的核心能力。Linux操作系统以其卓越的性能和广泛的适应性,成为了众多开发者和系统管理员的首选平台。而线程,作为进程中的执行单元,是实现多任务并发执行的关键技术之一。Linux线程的实现机制为开发者提供了丰富的工具和接口,使得我们能够充分利用系统资源,提高程序的运行效率和响应速度。本文将深入探讨Linux线程的相关概念、原理和实践应用,为读者呈现一个全面而深入的Linux线程技术体系。

2025-03-22 14:05:12 735 5

原创 【Linux】——进程状态&&僵尸进程&&孤儿进程

进程的状态反映了它在执行过程中的不同阶段,例如创建、就绪、运行、阻塞和终止等。这些状态之间的转换由操作系统的调度算法和进程的行为共同决定。通过了解进程状态的变化,我们不仅可以更好地理解程序的执行流程,还能在开发过程中更高效地调试和优化代码。在本篇博客中,我们将深入探讨进程的几种主要状态,分析它们之间的转换关系,并结合实际应用场景,帮助读者掌握进程状态管理的核心概念。无论你是操作系统初学者,还是希望进一步巩固相关知识的开发者,相信本文都能为你提供有价值的参考。

2025-03-20 20:22:24 6279 14

原创 【Linux进程】——进程的程序地址空间

在Linux系统的神秘世界里,进程就像是一个个小工匠,各自忙碌地完成着不同的任务。你是否想过,每个进程在自己的“工作空间”——程序地址空间里,是如何有条不紊地管理数据、代码和各种资源的呢?这就如同每个人有自己的房间,里面摆放着不同的东西,每一个角落都有其特定的用途。对于想要深入了解Linux系统运行机制的朋友来说,探究进程的程序地址空间就像是拿到了一把打开理解操作系统内部奥秘的钥匙。今天,就让我们一起踏入这个充满趣味和挑战的领域,揭开Linux进程程序地址空间的神秘面纱。

2025-03-20 20:03:56 819 4

原创 【Linux】——轻松搞定进程fork

在现代计算机系统中,多任务处理已经成为一种常态。从服务器上同时处理多个用户请求,到我们的个人电脑上各种软件后台默默运行的小任务,这一切的背后都离不开进程的管理。而在创建新进程的技术手段中,fork函数可谓是老牌且经典的“选手”。无论是在类UNIX系统的开发,还是在深入了解计算机系统运行机制的学习过程中,理解fork都是非常重要的。无论你是一个想要深入学习操作系统底层原理的开发者,还是仅仅对计算机内部运行机制充满好奇的探索者,这篇关于fork的博文都将为你打开一扇深入了解的大门。

2025-03-19 18:05:25 980 13

原创 【Linux】——看完这一篇,99%的人都懂进程

你是否曾经好奇,当你打开一个网页、运行一个软件或者执行一个命令时,Linux操作系统背后究竟发生了什么?是如何有条不紊地处理这些任务的呢?答案就隐藏在Linux操作系统神秘的“幕后英雄”——进程之中。进程,这个看似抽象的概念,却在Linux的世界里扮演着至关重要的角色。它们如同城市的交通网络,将各种资源紧密地连接在一起,确保系统的正常运转。现在,就让我们一同探索这个神秘的领域,揭开Linux操作系统进程的神秘面纱,看看这些隐藏在幕后的“小精灵们”是如何施展魔法的吧!

2025-03-19 17:49:45 556 6

原创 【C++】——queue&&stack&&适配器

在C++标准模板库(STL)的广阔世界中,容器是构建高效程序的基石。它们如同一个个精心设计的容器盒,以不同的结构和规则存储、管理数据,满足程序在不同场景下的需求。queue和stack作为STL容器家族中的重要成员,以其独特的数据结构和操作特性,在算法设计、程序逻辑构建以及资源管理等多方面发挥着不可替代的作用。接下来,让我们开启对queue和stack这两个STL容器的深入探索之旅。理解和掌握queuestack。

2025-03-17 22:17:41 937 15

原创 【C++】——面试问我new和delete?后悔没看这篇文章

在C++编程的世界里,内存管理是一项至关重要且基础的任务。有效的内存管理不仅关乎程序的性能、稳定性,更直接影响着软件的可靠性和可维护性。而new和delete作为C++中用于动态内存分配和释放的核心机制,承载着程序员对内存精确掌控的重任。从简单的单对象创建到复杂的对象数组管理,从内存的高效利用到避免潜在的内存泄漏风险,new和delete的合理运用贯穿于C++程序开发的始终。深入理解它们的工作原理、使用方法以及可能引发的问题,是每一位C++开发者走向精通的必经之路。本文将深入剖析new和delete。

2025-03-17 10:55:10 1818 13

原创 【C++】一文吃透STL容器——list

list,作为STL中的双向链表容器,以其灵活的操作方式和特定的性能特性,在众多编程任务中崭露头角。与数组等其他容器相比,list有着自己独特的内部结构和行为模式。它不需要像数组那样进行大规模的内存重新分配来适应元素的增减,而是能够高效地在任意位置进行元素的插入和删除操作。无论是在需要频繁修改元素顺序的算法中,还是在构建复杂的数据结构关系时,list都能发挥不可替代的作用。本文将深入剖析C++ STL中的list。

2025-03-16 19:27:09 1195 13

原创 【C++】—— 一篇文章解决面试 继承&&菱形继承

在C++这个广袤而神秘的编程世界里,继承宛如一颗璀璨的明珠,散发着独特的魅力。它是连接代码世界的纽带,也是实现代码复用与扩展的神奇魔法。当我们深入探索C++继承的奥秘时,就仿佛开启了一段奇妙的旅程,在这个旅程中,我们将领略到面向对象编程的博大精深,感受到代码在继承的力量下焕发出的无限活力。每一行代码,都是我们对世界的理解和表达;每一次继承,都是我们对程序设计的又一次探索和创新。在这个过程中,我们不仅能够提高代码的效率和质量,更能够培养自己严谨的逻辑思维和创造力。

2025-03-16 14:08:35 1348 1

原创 【C++】——看完这 1 篇文章,你绝对懂多态

C++作为一种广泛应用的面向对象编程语言,提供了众多强大的特性来支持程序的设计和实现。其中,多态无疑是C++面向对象编程中的核心概念之一,对提高代码的复用性、可维护性和可扩展性具有至关重要的作用。本文旨在深入剖析C++多态的概念、原理和实现机制,通过具体的代码示例和详细的解释,帮助读者全面理解多态的内涵和用法。希望通过对这一主题的探讨,能够为读者在C++面向对象编程的学习和实践中提供有益的指导和参考。

2025-03-16 14:07:26 581 6

原创 【Linux进程通信】————匿名管道&命名管道

没有人是一座孤岛——约翰·多恩布道词这句话告诉我们,没有人是孤独的,我们目录前言进程通信1.1进程通信目的1.2进程通信方式管道匿名管道匿名管道的创建匿名管道的使用匿名管道本质命名管道命名管道创建命名管道的使用命名管道的本质管道通信的四种情况管道的特点寄语既然存在于世,必定会与他人产生联系,与他人交流,人不能脱离人活下去,不能脱离社会,与世隔绝。一个人的知识,力量是有限的,当我们遇到一个人无法解决的难题时,我们就需要与他人合作,或者依靠交流得到解决办法,克服难题。

2025-03-16 12:54:55 804 1

原创 Linux文件IO——缓冲区&&磁盘上的文件管理

删除一个文件的本质,就是将其inode Bitmap中的比特位置为0,将其Block Bitmap中的比特位置0,这样在逻辑上,该文件就被删除了,当该inode被重新使用,数据块内容被覆盖,才是真正被删除。修改一个文件的本质是通过struct inode结构体中的数据块指针找到对应的数据块,修改数据块中的内容。如果权限检查通过,文件系统会为新文件分配一个inode,用于存储文件的属性(如文件大小、权限、时间戳等)。同时,文件系统还会为新文件分配必要的数据块,用于存储文件内容。

2025-03-14 10:02:37 663

原创 Linux下的文件管理——文件描述符&重定向

文件是我们保存资料的重要工具,而我们只会对其进行简单的操作,打开,对内容编辑,却不知道其到底是存在于何处,又怎么被我们打开,使用?应用层打开文件的时候,操作系统会做哪些事情?文件存在于哪里?文件一般被保存在磁盘当中,当被用户打开的时候,该文件的内容与属性会被加载到内存空间中,此时文件存在于内存当中,并且无法同再次打开。即当文件没有被打开的时候,文件存储在磁盘上,当文件被打开的时候,会被加载到内存空间上,此时文件存在于内存空间之上。那么多的文件,我们是怎么管理的,或者是谁帮我们管理的?

2025-03-13 10:27:11 775

原创 【C++】一文熟练STL容器——vector

在C++的广袤世界里,vector就像是一颗璀璨的明珠,散发着独特的魅力。它以其简洁高效的特性,为我们在数据的海洋中航行提供了可靠的导航和承载工具。通过对vector的深入探索,我们不仅掌握了一种强大的编程利器,更领略到了计算机科学中蕴含的智慧与美妙。希望这篇关于vector的介绍能如同一盏明灯,照亮你在编程道路上前行的方向,让你在未来的探索中更加游刃有余,创造出更多精彩的程序篇章。

2025-03-13 10:02:09 1068

原创 【C++类和对象(四)】——初始化列表&&友元&&构造优化等

​​构造函数是用来完成对类对象初始化的但构造函数函数体中对属性的“初始化”,并不是真正的初始化,而是赋值真正的初始化,在函数体之前

2024-12-12 14:33:04 1237 1

原创 【C++类和对象(三)】——赋值重载&&类的const函数&&取地址

🔥一个类中即使什么都不写,也并不是真正什么都没有,会有六个默认生成的默认函数,供给一个类的正常使用。🔥了解每个默认成员函数的特点与使用方式,可以使你对类的理解和使用更上一层楼!

2024-12-12 13:44:09 1018

原创 【MySQL】——用一文解决@基础函数&&group by

🔎你现在认清函数的重要性了吗?它是某一功能的实现,亦是代码的集合有了我们自己写的函数,我们不用重复写一些代码有了内置函数,我们可以轻松搞定一些复杂的问题一句话:🔥编程不能没有函数,就像西方不能没有耶路撒冷🔥本章节重点——MySQL的函数&&如何分组

2024-12-09 18:37:08 1055

原创 【MySQL】——​​用一文领悟表的增删查改

在🔥《库操作&&表操作》🔥一文中,我们已经知道如何对表进行创建、修改、删除但那是对表的结构而言,具体怎么对表的数据进行操作,我们还没有讲解这也是本章的介绍对象——表的增删查改本文章带大家认识了表的增删查改的操作但要彻底熟悉,需要勤加练习,多多实操才是。

2024-12-07 18:15:18 742

原创 【MySQL】——MySQL约束的良苦用心

通过规则,规范使用者的操作——约束数据类型本身也是一种约束,倒逼我们插入符合字段类型的数据但数据类型约束很单一,就需要一些额外的约束,更好保证数据的合法性本次文章的重点——认识约束

2024-12-06 14:23:09 1018

原创 【MySQL】——看懂MySQL数据类型,这一篇就够啦!

类型,是编程绕不开的一个话题类型是为了数据更好地存储和获取而存在的每一种编程语言因为特殊原因,也会对自己的类型做一些独特的调整本次文章重点——MySQL中的数据类型

2024-11-29 10:41:35 753

原创 【MySQL】——库操作&&表操作

怎么创建数据库?怎么在数据库下创建表?创建数据库后,怎么对数据库进行其他操作?创建表后,又怎么对表进行操作?本次介绍的重点是——库操作以及表操作

2024-11-28 19:34:37 818

原创 【Linux网络(六)】——MAC帧协议

网络层的IP协议负责对网络中的数据包进行路由,路径选择,重点在告诉数据包——到哪里去而数据链路层的协议,负责局域网中的具体通信,重点在告诉数据包——怎么到达

2024-11-28 18:38:49 1038

原创 【C++类和对象】——构造&&析构&&拷贝构造

当一个类中没有属性、没有方法的时候,我们将其称为空类。空类虽然没有内容,但其仍能实例化对象,但对象没有任何作用,只是单纯地占据空间但空类中,真的就什么都没有吗?答案是否定的,明面上什么都没有,但编译器会自动为其充实内容,生成默认成员函数!

2024-11-26 10:58:00 971

原创 【Linux网络(五)】——IP协议

前情提要应用层协议——让用户进程看得懂传输层协议——为数据保驾护航,防止传输过程中,数据出现错误本次文章主讲IP协议,它属于网络层的协议,其主要作用是解决数据在网络中怎么走的问题。

2024-11-25 19:09:09 992

原创 【MySQL】——数据库基础&&MySQL架构

数据库是目前广泛使用的一个技术,几乎无处不见,每个软件都会用到数据库我们平常在视频列表下发布评论,这些评论背后,其实也有数据库的影子可以说,数据库的地位举足轻重对于程序员来说,数据库的熟练使用,也是衡量一个程序员水平的标准!

2024-11-22 12:57:07 657

原创 【Linux网络(四)】——万字详解TCP协议,三次握手&&四次挥手一遍过!

我们在网络基础中,谈论过,网络的四层模型是为了解决网络通信的问题而创建的,每一层都会解决一个网络通信中的问题,而协议是解决问题的手段,本次文章讨论的主要——传输层的TCP协议,它作用就是保证数据可靠传输!注:本文章,量大管饱,满满干货,一键带你认识TCP协议!TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。三个关键点面向连接可靠的基于字节流我们接下来将对这三个点进行一一阐述,对这三个点了解,你将熟悉TCP协议!

2024-11-22 08:49:56 788

原创 【Linux网络(三)】——应用层之https协议

随着网络的逐渐发展,协议的形式也在不断发生变化,如今我们上网,已经很少看到以http作为开头的网址了,而是用https作为开头https协议由http演化而来,相当于http的升级版。

2024-11-21 16:01:32 891

原创 【Linux网络(二)】——应用层之http协议

http协议下,客户端向服务端发送请求,http协议不会保存历史请求信息,每一次请求对于双方而言,都是第一次请求,没有这是第几次请求的概念!

2024-11-20 18:25:52 788

原创 【Linux网络(一)】——网络基础

本次主要介绍的是网络通信,对网络通信基本流程做出一定解释,并涉及一小部分底层,但主打简单易懂,阅读完后,将理解数据是如何在网络中传递的!

2024-11-19 08:18:45 937

原创 【C++类和对象】——类的定义与实例化&&this指针解析

C语言大家都不陌生,它的最大特点是面向过程而C++是C语言的升级版,它由原来的面向过程转变为面向对象两者有什么区别呢?本次文章带你处认识C++中的面向对象我们通常将类的声明和定义放在一起,其中也有一些特殊情况,需要在定义前先声明声明形式//直接class+类名,注意分号我们重点看类的定义类的定义对类进行充实,添加成员,如函数和变量其中类的函数,我们称之为成员函数或者类的方法类的变量,我们称之为成员变量或者类的属性//函数//方法。

2024-11-19 08:18:33 1178

原创 C++中命名空间的自我修养

什么是命名空间?在日常的程序代码编写中,我们经常给给大量的函数以及变量取名字,取的名字多了,你总会发现,有些名字就是不能使用,因为它会和库的函数发生冲突,让编译器混乱,在库和你写的变量名或者函数名摇摆,从而使程序崩溃!而命名空间就是为了避免这一情况发生,为了方便程序员充分发挥自由而产生的一种逻辑 分组机制,它可以将函数和变量封装在一个独立的作用域当中,与其他作用域分割开来,不被打扰,避免发生名称冲突。

2024-06-08 15:14:54 690 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除