Linux
文章平均质量分 74
Geek之路
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Shell入门
在Linux中,所有进程的都默认有3各文件描述符,0 标准输入 1标准输出 2标准错误输出。将原有终端中输入和输出的地方定向到其他的地方。原创 2024-09-10 21:53:21 · 345 阅读 · 0 评论 -
C++智能指针
普通指针的不足,new和new[] 需要delete和delete[]原创 2024-09-08 11:30:14 · 331 阅读 · 0 评论 -
C++类继承
派生类和基类内存模型相同,在创建派生类对象后,在虚函数列表中,会用派生类成员函数取代基类成员函数的地址。关键字,把它声明为虚函数,基类指针就可以调用派生类中同名的成员函数,通过派生类中同名的成员函数,就可以访问派生对象的成员变量。2)当需要创建多个类时,如果它们拥有很多相似的成员变量或成员函数,可以将这些类共同的成员提取出来,定义为基类,然后从基类继承。创建派生类时,申请一块基类+派生类的内存空间,先调用基类的构造函数初始化基类的成员,再调用派生类的构造函数初始化派生类的成员。如果在基类的成员函数前加。原创 2024-09-06 09:03:07 · 1072 阅读 · 0 评论 -
C++基础回顾
如果重载函数有默认参数,调用函数时,可能导致匹配失败(本来有3个参数,第3个参数有个默认值,现在调用是只传入了两个参数,两个函数都能匹配,调用不明确)2)当需要创建多个类时,如果它们拥有很多相似的成员变量或成员函数,可以将这些类共同的成员提取出来,定义为基类,然后从基类继承。引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是变量,编译器形参类型的本身和类型引用视为同一特征。)引用的本质是指针,传递的是变量的地址,在函数中,引用时已定义的变量的别名,作用是用作函数的形参和返回值。原创 2024-09-01 09:38:33 · 1008 阅读 · 0 评论 -
线程同步学习
线程同步不是一起、相同,而是协调、协同的意思。1)按预定的先后次序进行运行,如:您说完,我再说;线程A生成数据后交给线程B处理;2)公共资源同一时刻只能被一个线程使用;共享数据在同一时刻只能被一个线程修改,以保证数据的完整性。线程安全的3大特性1、原子性原子性是指操作是不可分的。其表现在于对于共享变量的某些操作,应该是不可分的,必须连续完成。2、可见性可见性是指一个线程对共享变量的修改,另外一个线程能够立刻看到;基于互斥锁、条件变量、信号量、自旋锁、读写锁。原创 2024-08-27 11:54:02 · 853 阅读 · 0 评论 -
多进程比多线程开销大的原因
综上所述,多进程比多线程开销大的原因主要包括资源分配与回收的复杂性、上下文切换的开销、进程间通信的复杂性。然而,需要注意的是,在某些情况下(如需要高隔离性、高稳定性或利用多核CPU并行计算时),多进程可能是更好的选择。因此,在选择使用多进程还是多线程时,需要根据具体的应用场景和需求来权衡利弊。原创 2024-08-26 19:47:21 · 629 阅读 · 0 评论 -
Linux TCP多线程服务器
假设两个核心1,2,4个任务a,b,c,d,ab分配给了核心1,cd分配给了核心2,此时ab就是并发,cd也是并发,a与c就可以并行,b与d也可以并行。假如进程是一个文档编辑器,存放着相应的程序和文档,现在用户用键盘敲下回车,交互的程序接收键盘的按下事件,布局的程序将文字重新排布渲染出来,另外每隔一段时间,写入的程序保存文档到硬盘中,所以这三个程序最好能并行执行,但他们又需要访问修改同一个文档,所以肯定是在同一个进程中,所以现在需要更轻量级的3个线程,交互线程, 渲染线程,保存线程。原创 2024-08-25 16:56:19 · 1398 阅读 · 0 评论 -
堆栈的初步理解
那么什么时候可以回收呢,显然只有使用这块内存的程序员自己知道,也就是说 如果程序员不去释放内存,那么在任何函数中,都可以使用这块内存或者这个变量,这些变量占据的内存就是堆区。当变量出现在函数后就会出现一个问题,那就是变量的使用范围或者生命周期仅仅是函数内部还是超越函数,如果一个变量仅仅在函数内部,那么当函数结束后,这个变量占据的内存就可以进行销毁了,这就是局部变量。栈区的内存管理无需程序员关心,实际上栈区是非常好管理的,栈区的内存申请和释放是非常有规律的,先来的后释放,遵循栈的顺序。栈区和堆区大小一样吗。原创 2024-08-25 10:47:20 · 437 阅读 · 0 评论 -
Linux系统编程全面学习
一种可执行的二进制文件,编译好的代码。使用库可以提高开发效率Linux库分为静态库和动态库静态库:静态库在程序编译的时候会被链接到目标代码里面。所以我们的程序运行就不再需要该静态库了。因此编译出来的体积就比较大,静态库以lib开头.a结尾(10个程序都需要某个静态库,编译的时候就需要链接10次,不太方便)动态库: 动态库(也叫共享库)在程序编译的时候不会被链接到目标代码里面,所以我们的程序运行就需要该动态库。因此编译出来的体积就比较小。静态库以lib开头.so。原创 2024-08-22 19:58:10 · 1646 阅读 · 0 评论
分享