23_【Linux】九、Linux 多线程(六 )


「前言」本文的内容大致是线程池、线程安全的单例模式和读写锁。 一、线程池 1.1 概念 线程池一种线程使用模式 线程过多会带来调度开销,进而影响缓存局部性和整体性能。 而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务:(线程池的优点) 这避免了在处理短时间任务时创建与销毁线程的代价。 线

22_【Linux】九、Linux 多线程(五)


「前言」本文的内容大致是 POSIX 信号量和基于环形队列的生产消费模型。 十、POSIX信号量 10.1 分析之前代码的不足 在进入话题正文之前先谈三个概念:串行、并行、并发 串行:串行是指在一个CPU上,任务按照一定的顺序执行,每个任务必须在前一个任务完成后才能开始执行。在串行执行中,每个任务都

21_【Linux】九、Linux 多线程(四)


「前言」本文的内容大致是生产者消费者模型和基于 BlockingQueue 的生产者消费者模型。 八、生产者消费者模型 8.1 概念 生产者消费者模型是指在一个系统中,存在生产者和消费者两种角色,生产者负责生产数据,消费者负责消费数据,二者之间通过共享缓冲区进行通信,以实现数据的传输和处理。生产者生

20_【Linux】九、Linux 多线程(三)


「前言」本文的内容大致是线程互斥、线程安全、死锁和线程同步。 四、Linux线程互斥 4.1 进程线程间的互斥相关概念 临界资源:多线程执行流共享的资源就叫做临界资源 临界区:每个线程内部,访问临界资源的代码,就叫做临界区 互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临

19_【Linux】九、Linux 多线程(二)


「前言」本文的内容大致是线程控制。 三、 Linux线程控制 3.1 POSIX线程库 前面我们使用的pthread线程库是归属POSIX线程库,pthread线程库是POSIX线程库的一部分,POSIX线程库也叫原生线程库,遵守POSIX标准: 与线程有关的函数构成了一个完整的系列,绝大多数函数的

18_【Linux】九、Linux 多线程(一)


「前言」本文的内容大致是对进程地址空间的第三次理解和线程概念。 一、 进程地址空间的第三次理解 在谈线程之前,需要再次理解进程地址空间,为后序讲解线程做准备。 进程地址空间在进程概念篇章已经说过一部分,这是进程地址空间的第一次理解,点击穿越 之后进程地址空间在进程信号篇章已经说过一部分,这是进程地址

17_【Linux】八、Linux 进程信号(二 )


「前言」本文的内容大致是阻塞信号、深入理解捕捉信号、可重入函数和再次理解 C语言关键字 volatile。 三、阻塞信号 3.1 信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending) 进程可以选择阻塞 (Block

16_【Linux】八、Linux 进程信号(一)


「前言」本文的内容大致是认识信号和产生信号。 一、认识信号 1.1 生活中的信号 日常生活中,常见的信号有:发令枪、红绿灯、消息提醒、电话铃声、闹钟等等,以快递为例。 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”;

15_【Linux】七、进程间通信(二)


「前言」本文内容大致是system V IPC。 三、system V(IPC) system V 用于本地通信,通信的本质就是让不同的进程看到同一份资源 system V IPC提供的通信方式有以下三种: system V共享内存 system V消息队列 system V信号量 3.1 syst

14_【Linux】七、进程间通信(一)


「前言」本文的大致内容是对进程间通信的基本介绍以及管道的介绍。 一、进程间通信介绍 1.1 进程间通信概念 进程间通信就是在不同进程之间传播或交换信息,进程间通信简称IPC(Interprocess communication) 1.2 为什么要有进程间通信 为什么要有进程间通信?? 有时候我们是需