进程通信
有时候进程间需要协作来完成某项功能,典型的如Master-Worker模型,这时候就需要进行进程间通信
IPC
进程间通信(Inner Process Communication)
进程通行方式
进程间采用的通信方式要么需要切换内核上下文,要么要与外设访问(有名管道,文件),所以速度会比较慢
- 共享内存(shared memory)
- 消息队列(message queue)
- 有名管道(named pipe)
- 无名管道(pipe)
- 信号量(semaphore)
- 信号(signal)
- 文件(file)
- 套接字(socket)
线程通信方式
除了可以使用进程的通信方式,还可以使用
- 全局变量
- 条件变量
- 线程信号
- 互斥量
- 读写锁
- 自旋锁
RPC
远程过程调用(Remote Procedure Call),详情参考这里
参考
python使用master worker管理模型开发服务端
并行程序设计模式--Master-Worker模式
进程间、线程间通信方式小结
深刻理解Linux进程间通信(IPC)
Linux进程与线程的区别
Linux进程间通信——使用共享内存
Linux进程间通信——使用消息队列
Linux进程间通信——使用命名管道
Linux进程间通信——使用匿名管道
Linux进程间通信——使用信号量
Linux进程间通信——使用信号
Linux进程间通信——使用流套接字
浅析线程间通信一:互斥量和条件变量
浅析线程间通信二:读写锁和自旋锁
Linux线程编程之信号处理
RPC综述 - PB, Thrift, Avro
谁能用通俗的语言解释一下什么是 RPC 框架