常识 | 进程间通信

管道

        单向的,相当于是内核的一个缓冲区

消息队列

        和管道相比,接收的时候不用按顺序一个一个收,可以自定义顺序

套接字

        客户端和服务端要分别建立一对套接字,客户端进行监听

      常识 | zmq通信_tuuzkiii_Tuu的博客-CSDN博客 zmq算是一种封装好的套接字,本质上又是一种消息队列

信号量

        就是semaphore

共享内存


消息队列的具体实现

进程发消息各个字段:根据消息队列id(msqid)确认要发送到的队列,需要发送的数据是给定起始位置(msgp)和数据长度(msgsz),flag用于判定消息队列满时是截断、阻塞还是立即返回

进程接受消息各个字段:根据消息队列id(msqid)确认接收队列,接收数据的起始地址(msgp)和数据长度(msgsz),flag选择阻塞式接收、立即返回、改为接收第一个消息、过长截断

通常,创建队列是在某个大进程初始化的时候,然后在各个线程交互消息的时候再使用这个消息队列。

套接字的具体实现

 


同步

发出一个功能调用时,在没有得到结果之前,该调用就不返回。而一旦返回,就相当于得到结果

异步

调用者发出一个功能调用后直接返回,因此可以继续执行后续操作。当这个调用完成后,由被调用者通过状态、通知和回调来通知调用者。

阻塞/非阻塞

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态。阻塞调用是指调用结果返回之前,当前线程会被挂起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值