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