二十三、进程间通信概述

简介: 二十三、进程间通信概述

进程间通信简称叫IPC-Inter Process Communication,如下图所示,进程间通信又可以分为间接通信和直接通信两种。

0766987b141243faaaae6baf194b4de7.png



1、直接通信


进程必须正确地命名对方:Send(P,message):发送信息到进程P;Receive(Q,message):从进程Q接收消息。


通信链路的属性:(1)自动建立链路;(2)一条链路恰好对应一对进程通信;(3)每对进程之间只有一个链接存在;(4)链接可以是单向的,但通常是双向的。





2、间接通信


定向从消息队列接收信息: 每个消息队列都有一个唯一的ID;只有他们了共享一个消息队列,进程才能够通信。


通信链路的属性:(1)只有进程共享一个共同的消息队列,才建立链路;(2)链接可以与许多进程相关联;(3)每对进程可以共享多个通信链路;(4)链接可以单向或者双向。


间接通信的操作包括:创建一个新的消息队列;通过消息队列发送和接收消息;销毁消息队列。


间接操作的原语定义如下:send(A,message): 发送消息到队列A;receive(A,message): 从队列A接收消息



3、阻塞发送


只要当消息发送出去并被接收方接收到之后,发送方才会继续做其他的工作,否则发送方就处于等待状态。而对于接收方而言,其会一直等待到接收到消息之后才会继续进行其他工作。阻塞发送是一种同步的发送方式。



4、非阻塞发送


发送方发送完消息之后就可以继续进行其他工作,不用管消息是否被接收方收到;对于接收方而言,可以接收到有效消息或者没接收到消息,都可以继续执行。非阻塞发送是一种异步发送方式。接收方接收到数据和发送方发送的时间之间可能会有一个较大的时间gap值,这个较大的时间gap值是异步性的一个体现。


相关文章
|
10月前
|
存储 自然语言处理 数据可视化
【软考学习8】操作系统概述、进程状态转变原理、前趋图
【软考学习8】操作系统概述、进程状态转变原理、前趋图
165 0
【软考学习8】操作系统概述、进程状态转变原理、前趋图
|
2月前
|
消息中间件 存储 缓存
概述Linux进程间通信模式
【2月更文挑战第14天】
|
3月前
|
数据库
服务器进程概述
服务器进程概述
|
消息中间件 安全 Linux
嵌入式Linux C进程间通信(一)——IPC概述和信号
嵌入式Linux C进程间通信(一)——IPC概述和信号
192 0
嵌入式Linux C进程间通信(一)——IPC概述和信号
|
安全 Linux
嵌入式Linux C多进程编程(二)——进程概述
嵌入式Linux C多进程编程(二)——进程概述
嵌入式Linux C多进程编程(二)——进程概述
|
网络协议 Linux C++
嵌入式Linux C多进程编程(一)——多任务概述
嵌入式Linux C多进程编程(一)——多任务概述
106 0
JUC并发编程学习1:JUC概述、进程线程概述
JUC就是工具类,java.util.concurent的缩写。用来开发并发编程的工具包。 JUC是一个处理线程的工具包,JDK1.5开始出现的。
JUC并发编程学习1:JUC概述、进程线程概述
|
监控 并行计算 Java
《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(四)
《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)
《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(四)
|
Java 调度
《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(三)
《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)
《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(三)