最近在设计一个多进程的系统,主进程和子进程的通讯和调用方式是其中的一个关键问题,程序需要考虑跨平台和跨语言,后台守护进程和UI界面,子进程管理等,对可靠性要求高,还是很复杂的。今天掰一掰进程间通信的问题
# 命令行参数和返回值调用,最直接的方法
跨平台和跨语言应该OK
# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
windows下管道不好用吧
# 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
跨平台应该ok
原文地址:http://blog.csdn.net/offbye/article/details/37822573