(转)进程间的通信方式
1、Windows消息传输对象
当开发界面程序时,特别是windows界面编程,消息尤为重要;相信开发过windows界面程序的人们,对PostMessage(),SendMessage(),PostThreadMessage()不是很陌生,各个窗口基本上都可以通过这三个函数实现各种消息的传递,从面达到各个窗口之间的通信;窗口可以通过这三个函数向别的窗口发送消息,也可以接收消息,当然消息里就承载了进程间通信的各种信息(如要协同做些什么,完成什么功能等)。
2、文件共享和内存共享
文件共享,简言之就是文件映射到内存,达到共享,从而实现通信
3、系统剪贴板通信
其实这也是一种通过共享而实现通信的方式,只是这种方式有点特别,由糸统来管理这种共享。
4、管道通信
形象点说:一旦某个进程接上了“管道”,它的输入、输出就可以与这个“管道”进行交换。在windows中,管道有匿名管道和命名管道之分。
5、邮槽通信
邮槽有点类似于邮件系统,它是基于广播通信体系设计出来的,并采用了无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务端进程读取数据,打开邮槽的客户端进程写入数据
6、信号量
信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
7、信号
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
8、套接字
套接口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。