linux系统中的进程通讯方式主要如下几种: html
PIPE(FIFO) java
消息队列 linux
信号量(Semaphore) 网络
共享存储 数据结构
SOCKET 多线程
同一主机上的进程通讯方式 并发
* UNIX进程间通讯方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) 测试
* System V进程通讯方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory) spa
网络主机间的进程通讯方式 .net
* RPC: Remote Procedure Call 远程过程调用
* Socket: 当前最流行的网络通讯方式, 基于TCP/IP协议的通讯方式.
各自的特色:
Linux系统中的线程通讯方式主要如下几种:
* 锁机制:包括互斥锁、条件变量、读写锁
互斥锁提供了以排他方式防止数据结构被并发修改的方法。
使用条件变量能够以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一块儿使用。
读写锁容许多个线程同时读共享数据,而对写操做是互斥的。
* 信号量机制(Semaphore):包括无名线程信号量和命名线程信号量
* 信号机制(Signal):相似进程间的信号处理
线程间的通讯目的主要是用于线程同步。因此线程没有像进程通讯中的用于数据交换的通讯机制。
在java中咱们实现多线程间通讯则主要采用"共享变量"和"管道流"这两种方法。
-------------------------------------------------------------
附:java多线程通讯方法
http://my.oschina.net/u/248570/blog/53226
http://www.cnblogs.com/vamei/archive/2012/10/10/2715398.html