进程间的通信
文章平均质量分 82
飞飞快跑
是我,没错
展开
-
linux多线程----------->线程池的介绍和使用
通俗一点来说线程池就是将线程放在这个"水池"中,我们可以加水也可以防水对吧?其实线程池也是这样的,主要的任务是新建进程 和销毁进程来管理整个线程池。 我们可以想象这么一种情况,面对一个要接收多个任务的情况,我们正常的做法就是,来一个任务我就新建一个线程去处理, 然后任务处理完了就要销毁这个线程,就要一直去关注情况是怎么样的,极大的消耗了资源。 在这种情况下就诞生了一种处理线程新的机制---------------线程池 所谓线程池,我们可以将它比喻成一个水池一样,水满的时候防水,没有水的时候加水,保持一个有原创 2021-05-28 20:28:14 · 350 阅读 · 2 评论 -
Linux进程间的通信(5)--------信号通信2 (进程的状态,运行,暂停,僵尸态,孤儿进程)
在上一章说到用kill发送内核信号中的其中一种给进程,进而进行通信 这一章来讨论通过信号量来改变进程的状态 我们单独的建立两个进程,然后用raise函数杀死进程,查看状态 #include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<stdlib.h> #include<signal.h> int main(void) { pid_t pid;原创 2020-10-25 17:08:54 · 117 阅读 · 0 评论 -
Linux进程间的通信(4)--------信号通信
现在为大家介绍与之前的管道通信完全不同的通信方式-------信号通信 示意图如下,在用户空间是不可以发送信号量的,只能通过内核来发送 而信号是分很多种的,我们通过命令kill -l可以看到Linux内核中有64中信号 我们可以通过内核像指定的进程(pid号)发送这64种信号种的一种 下面通过一个程序来实现信号的通信-------------发送信号终结其他进程的死循环 死循环进程: 在这里插入代码片 ...原创 2020-10-19 21:45:03 · 85 阅读 · 0 评论 -
Linux进程间的通信(3)--------有名管道
我们在使用有名管道的时候需要创建管道节点,通过mkdifo函数,创建成功并不会马上在Linux内核中生成管道,只有通过open函数打开节点以后才会有管道在Linux内核中生成原创 2020-10-17 15:25:11 · 114 阅读 · 0 评论 -
Linux进程间的通信(2)--------无名管道
在代码界一直流行着这么一句话,“Linux 一切皆文件!” 所以文件IO的读写是 非常非常重要的!接下来为大家介绍一种Linux间的通信方式---------------无名管道 在Linux里面已经规定0位输入(stdin),1位输出(stdout), 2为错误(stderror) 例如用无名管道申请的文件描述符是从3开始的 0 1 2 #include <unistd.h> #incl原创 2020-10-16 20:25:54 · 88 阅读 · 0 评论 -
Linux进程间的通信(1)--------概念
在我们学习进程间的通信的时候,我们需要知道的是,什么是进程,什么是线程。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 线程间的通信可以在用户空间中实现 列如: 在这里插入代码片 ...原创 2020-10-11 21:29:42 · 187 阅读 · 0 评论