进程有哪几种通讯方式?试举例说明?

2024-11-29 04:37:51
推荐回答(1个)
回答(1):

UNIX中有如下的通信方式,我是摘抄的百度词条里面的,仅供参考:
1) 文件和记录锁定。
为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是UNIX为共享资源提供的互斥性保障。

2)管道。
管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样 提供了两个进程之间数据流动的一种方式。

3)FIFO。
FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。

4)消息队列。
UNIX下不同进程之间可实现共享资源的一种机制;UNIX允许不同进程将格式化的数据流以消息形式发送给任意
进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。

5)信号灯。
作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步(协调对共享存储段的存取)。

6)共享内存。
通过信号灯实现存储共享(类似“红灯停、绿灯行”)

如果您认为本词条还有待完善,需要补充新内容或修改错误内容