![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 95
还小给个面子
少一点浮躁,多一点耐心
展开
-
[Linux]生产者消费者模型(基于BlockQueue的生产者消费者模型 | 基于环形队列的生产者消费者模型 | 信号量 )
在多线程编程中阻塞队列(Blocking Queue)是一种常用于实现生产者和消费者模型的数据结构。其与普通的队列区别在于,当队列为空时,从队列获取元素的操作将会被阻塞,直到队列中被放入了元素;当队列满时,往队列里存放元素的操作也会被阻塞,直到有元素被从队列中取出(以上的操作都是基于不同的线程来说的,线程在对阻塞队列进程操作时会被阻塞)。POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。但POSIX可以用于线程间同步。原创 2023-02-02 17:14:21 · 1531 阅读 · 8 评论 -
[Linux]多线程的同步和互斥(线程池 | 单例模式 | 其他常见的锁 | 读者写者问题)
线程池是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量原创 2022-12-25 13:29:46 · 734 阅读 · 13 评论 -
[Linux]多线程的同步和互斥(线程安全 | 互斥锁 | 死锁 | 条件变量)
创建一个线程为master线程,三个线程为worker线程,每过3s master线程唤醒一个worker线程工作。要做到这三点,本质上就是需要一把锁。原创 2022-12-21 16:04:54 · 477 阅读 · 8 评论 -
[Linux]线程概念_线程控制(线程与进程的区别与联系 | 线程创建 | 线程等待 | 线程终止 | 线程分离 | LWP)
因为Linux线程是用进程复用模拟的,所以Linux没有提供直接操作线程的接口,而是提供了在同一进程地址空间创建PCB的方法,分配资源给指定PCB的接口,但是这些接口为用户不友好,所以一些系统级别的工程师就在用户层对Linux轻量级进程接口进行封装,打包成库,让用户直接使用库接口(线程创建,释放线程,等待线程等等),这个库叫做。调用该函数的线程将挂起等待,直到id为thread的线程终止。线程获取退出码,得知代码的运行结果的对错,但是如果程序异常了呢?那么Linux是怎么管理线程的呢?为什么需要线程等待?原创 2022-12-20 12:19:08 · 727 阅读 · 7 评论 -
[Linux]进程信号(阻塞信号 | 信号集操作函数 | 信号捕捉 | 可重入函数 | volatile关键字)
进程在收到信号后,对于信号的处理并不是立刻做出反应,这与进程的优先级有关,进程有可能在执行优先级更高的工作,信号就需要被暂时保存下来,进程的信号会被暂时保存在进程的task_struct中。原创 2022-09-06 17:01:04 · 397 阅读 · 24 评论 -
[Linux]进程信号(信号入门 | 信号产生的方式 | 信号捕捉初识)
生活中有许许多多的信号,比如闹钟,红绿灯,信号枪和鸡叫声等等,当我们接收到这些信号后,我们会立即做出反应,闹钟响了就要起床,红灯停绿灯行,也就是说在接受这些信号之前,我们已经知道收到信号后所对应的措施。而且,在生活中我们收到信号,不一定是立即处理的,比如当我们接到外卖员的电话,这是一个信号,但是如果我们现在正在做更重要的事,就不会立即去处理这个信号。原创 2022-09-04 14:10:13 · 885 阅读 · 27 评论 -
[Linux]进程间通信(system V共享内存 | system V信号量)
在内核中,所有的IPC资源都是由数组组织起来的,但是共享内存、消息队列和信号量的数据结构类型完全不一样,操作系统是怎么组织的呢?原创 2022-09-02 19:51:09 · 1240 阅读 · 23 评论 -
[Linux]进程间通信(进程间通信介绍 | 匿名管道 | 命名管道)
进程是具有独立性的,进程之间在保持各自独立性时,可能会存在特定的协同工作的场景,比如一个进程要把数据交付给另一个进程进行处理,这种场景下就需要进程间通信。要实现进程间通信,操作系统就要设计适合系统的通信方式,然而进程是具有独立性的,要交互数据,成本非常高,因为一个进程是获取不到另一个进程的资源的,如果要实现进程间通信就必须让不同的进程可以看到同一份资源。所以说,进程间通信的本质是由操作系统提供一份通信进程可以看到的公共资源,这份资源可能以文件方式提供,也可能队列的方式,也可能是原始的内存块。...原创 2022-08-31 15:24:20 · 1324 阅读 · 17 评论 -
[Linux]基础IO下(理解文件系统 | inode | 动静态库)
Linux基础IO,理解文件系统,了解文件inode的构成,学会打包动静态库并使用。 在基础IO上谈到的都是一个文件被打开后的情况,下面我们要谈谈如果一个文件没有被打开呢?文件没有被打开时,是被保存在磁盘的。文件=文件内容+文件属性,如果一个空文件被创建出来,这个空文件的属性也是要占磁盘的空间的。 磁盘分为机械硬盘和固态硬盘。在机械硬盘中写入,本质上是写入到机械硬盘的盘片上,磁盘写入的基本单位是:扇区(512字节),扇区是盘片上的一圈磁道上同半径的小块单元,不同盘片的磁道上下形成一个柱面。......原创 2022-08-29 16:42:38 · 1297 阅读 · 29 评论 -
[Linux]基础IO上(C文件操作 | 系统文件IO | 文件描述符fd | 缓冲区概念)
[Linux]基础IO上(C文件操作 | 系统文件IO | 文件描述符fd | 缓冲区概念)原创 2022-08-23 14:31:52 · 1233 阅读 · 30 评论 -
[Linux]进程控制(进程创建、进程终止、进程等待和进程替换)
Linux进程控制,进程创建、进程终止、进程等待和进程替换。原创 2022-08-18 14:49:11 · 780 阅读 · 13 评论 -
[Linux]进程优先级和环境变量
Linux进程优先级和环境变量理解。原创 2022-08-11 16:52:22 · 215 阅读 · 0 评论 -
[Linux]进程概念
Linux进程概念详解。原创 2022-08-09 16:07:33 · 163 阅读 · 1 评论 -
[Linux]权限理解
Linux权限理解,包含权限操作,权限管理等原创 2022-08-07 14:26:25 · 293 阅读 · 6 评论 -
[Linux]基本指令
Linux入门必学指令!原创 2022-07-08 14:30:22 · 822 阅读 · 30 评论