Linux
文章平均质量分 91
且行且思66
day day up
展开
-
Linux多线程(下)
Linux多线程(下)文章目录1.线程池1.应用场景2.原理3.代码实现2.单例模式1.设计模式及分类2.单例模式3.单例模式的两种形式(懒汉/饿汉)3.乐观锁与悲观锁1.概念2.自旋锁与互斥锁的区别3.无锁编程1.线程池什么是线程池?一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的原创 2022-05-17 09:43:21 · 248 阅读 · 2 评论 -
生产者与消费者模型与信号量
生产者与消费者模型原创 2022-05-16 17:06:21 · 247 阅读 · 0 评论 -
Linux多线程(中)
Linux多线程(中)文章目录1.线程安全2.同步与互斥1.互斥锁2.同步4.死锁1.线程安全什么是线程不安全?多个线程并发执行一段代码时,会导致程序结果的二义性假设有两个线程A,B,有一个CPU,两个线程想同时对全局变量i=10进行加加,如果A从内存中读到i的值后还没有加加,线程就切换了,此时切换成线程B从内存中读到了i并加加为11,B加完后轮到线程A,线程A之前读到的值为10加完后i的值仍然是11;另一种情况则是A加完后B再加,此时的到值就是12。因此产生了结果二义性的问题。下面是一个不原创 2022-05-10 23:31:03 · 290 阅读 · 4 评论 -
Linux多线程(上)
Linux多线程(上)文章目录1.线程概念及优缺点2.线程创建3.线程终止4.线程等待5.线程分离1.线程概念及优缺点线程是一个轻量级进程,准确的定义是:一个进程内部的控制序列一切进程至少都有一个执行进程线程在进程内部运行,本质是在进程的地址空间内运行通过进程地址空间,将进程资源合理分配给每个执行流,就形成了线程执行流共享与独有:独有:在进程虚拟地址空间的共享区当中,调用栈,寄存器,线程ID,errno,信号屏蔽字,调度优先级共享:文件描述符表,用户id,用户组id, 信号处原创 2022-05-08 09:08:24 · 235 阅读 · 2 评论 -
Linux进程信号
Linux进程信号文章目录1.信号的概念2.信号的产生3.信号的种类4.信号的处理方式5.信号的注册6.信号的注销7.信号的自定义处理方式8.信号的捕捉流程9.信号的阻塞10.扩展1.信号的概念信号是进程之间事件异步通知的一种方式,属于软中断。只是告诉有这样一个信号,但是具体这个信号怎么处理,什么时候处理由进程决定的。所以是软中断2.信号的产生硬件产生:1.ctrl+c:2号信号 SIGINT(键盘当中按下ctrl+c结束一个进程的时候,其实是进程收到了2号信号。2号信号导致了进程的退出原创 2022-03-31 18:31:11 · 3102 阅读 · 4 评论 -
Linux进程通信之共享内存与消息队列
Linux进程通信之共享内存与消息队列文章目录1.共享内存的原理2.共享内存的接口3.共享内存代码4.共享内存特性5.消息队列原理6.消息队列接口7.消息队列代码1.共享内存的原理2.共享内存的接口3.共享内存代码4.共享内存特性5.消息队列原理6.消息队列接口7.消息队列代码...原创 2022-03-29 00:10:05 · 2139 阅读 · 8 评论 -
Linux进程通信之管道
Linux进程通信文章目录原创 2022-03-26 17:48:39 · 2262 阅读 · 7 评论 -
进程替换与基础IO
进程替换与基础IO文章目录1.进程程序替换原理2.exec函数簇1.替换函数:2.函数解释3.命名理解4.总结:3.函数之间的区别4.C语言下的文件接口1.fopen2.fwrite3.fread4.fseek5.系统调用的文件接口1.open2.write3.read4.lseek6.文件描述符7.重定向8.静态库与动态库1.动态库2.静态库9.软硬连接的理解1.进程程序替换原理因为父进程创建出来的子进程和父进程拥有相同的代码段,所以,子进程看到的代码和父进程是一样的。当我们想要让子进程执行不同的原创 2022-03-23 22:20:08 · 862 阅读 · 11 评论 -
Linux环境变量与进程虚拟地址空间
环境变量与地址虚拟空间文章目录1.概念2.常见的环境变量与查看当前环境变量方法3.环境变量对应的文件4.修改环境变量5.环境变量的组织方式6.代码获取环境变量1.main函数的参数:2.通过第三方变量environ获取3.通过getenv7.C语言中的程序地址空间图8.虚拟地址9虚拟地址空间1.概念环境变量是指操作系统中用来指定操作系统运行的一些参数,换句话说,操作系统通过环境变量来找到运行时的一些资源例如:链接时帮助连接器找到动态库,执行ls命令时帮助用户找到位置。2.常见的环境变量与查看当原创 2022-03-23 16:09:03 · 1887 阅读 · 6 评论 -
Linux僵尸进程与孤儿进程
Linux僵尸进程与孤儿进程文章目录僵尸进程1.概念2.模拟代码3.原因4.危害5.解决方案孤儿进程1.概念2.模拟代码3.原因4.孤儿进程有危害吗僵尸进程1.概念简单来说:子进程先于父进程退出,子进程会变成僵尸进程,进入到Z状态。2.模拟代码创建一个僵尸进程例子 #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main() { int原创 2022-03-16 09:26:06 · 360 阅读 · 10 评论 -
Linux进程
Linux进程(上)文章目录Linux进程(上)一、概述二、进程的描述三、进程操作四、创建子进程一、概述1.为什么引入进程?由于程序在并发执行(间断性、失去封闭性、不可再现行)时,可能会造成执行结果的不可再现,所以 用“程序”这个概念已无法描述程序的并发执行,所以必须引入新的概念—进程来描述程序的并发执行,并要对进程进行必要的管理,以保证进程在并发执行时结果可再现。**2.概念:**担当分配系统资源(CPU时间,内存)的实体。二、进程的描述1.Linux操作系统下的PCB是: ta原创 2022-03-13 09:21:32 · 1374 阅读 · 10 评论 -
Linux开发工具实现C/C++编程
Linux开发工具实现C/C++编程文章目录Linux开发工具实现C/C++编程1.软件包管理器:yum如何安装软件如何卸载软件2.编辑器:vim1.常见的三种模式:2.正常模式下的快捷操作3.简单vim配置4.其他3.编译器:gcc/g++4.调试器:gdb1.两种模式:2.进入gdb调试的基础方法5.自动化构建项目:make/Makefile1.介绍:2.makefile的文件格式3.makefile的工作原理4.makefile文件当中的自定义变量和内置变量1.软件包管理器:yum如何安装软件原创 2022-02-10 22:07:13 · 8218 阅读 · 25 评论 -
Linux权限
Linux权限文章目录Linux权限1.Linux下用户分类2.文件访问者的分类1.Linux下用户分类超级用户:可以在linux系统下做任何事情,不受限制,命令提示符为“#”普通用户:在linux下做有限制的事情,命令提示符为“$“命令:su [用户名]例如:要从root用户切换到普通用户user,则使用su user。要从普通用户user切换到root用户则使用suroot (root可以省略),此时系统会提示输入root用户的口令。2.文件访问者的分类...原创 2022-02-07 23:55:00 · 203 阅读 · 3 评论 -
Linux常见基础指令
1.ls指令:语法:ls [选项][指令]功能: 针对目录列出目录下的所有子目录与文件,针对文件列出文件名及其他信息常用选项:原创 2022-01-28 23:48:12 · 1195 阅读 · 4 评论