进程线程(程序 进程 线程)
进程间通信的方式如下:1 .管道通常指无名管道,是UNIX系统中最古老的IPC形式;2.FIFO是文件类型;3.消息队列是消息的链表,存储在内核中;4.信号量是计数器;5.共享内存。
操作环境:Windows7系统,戴尔G3电脑。
进程间通信的方法如下:
一、管道
管道,通常被称为无名管道,是UNIX系统中最古老的IPC形式。
特点:
它是半双工(即数据只能单向流动),读写端固定。
只能用于相关流程之间的通信(也可以用于父子流程或兄弟流程之间的通信)。
可以看作是一个特殊的文件,它的读写可以使用读写等普通功能。但它不是普通文件,不属于任何其他文件系统,只存在于内存中。
第二,先进先出
先进先出,也称为命名管道,是一种文件类型。
1.特征
与匿名管道不同,先进先出可以在不相关的进程之间交换数据。
FIFO有关联的路径名,在文件系统中作为特殊设备文件存在。
第三,消息队列
消息队列是消息的链表,存储在内核中。消息队列由标识符(即队列标识)标识。
特征
消息队列是面向记录的,其中消息有特定的格式和特定的优先级。
消息队列独立于发送和接收过程。当进程终止时,消息队列及其内容不会被删除。
消息队列可以实现消息的随机查询,消息不必按照先进先出的顺序读取,也可以根据消息的类型读取。
四.臂板信号
信号量不同于已经介绍的IPC结构,它是一个计数器。信号量用于实现进程间的互斥和同步,而不是存储进程间的通信数据。
特征
信号量用于进程间的同步,进程间传输数据需要共享内存。
信号量是基于操作系统的PV操作,程序对信号量的操作是原子操作。
信号量上的每一个PV运算,不局限于信号幅度加1或减1,还可以加减任意正整数。
支持信号量组。
动词 (verb的缩写)共享内存
共享内存意味着两个或多个进程共享一个给定的内存区域。
特征
共享内存是最快的IPC,因为进程直接访问内存。
因为多个进程可以同时运行,所以需要同步。
信号量和共享内存通常一起使用。信号量用于同步对共享内存的访问。