一 . 概述
該類描述的是乙個交換空間,我們可以理解為我們的生產者和消費者模型之中的緩衝區.
二 . 類結構
構造方法:
public exchanger()
這個類的構造需要乙個泛型,表示需要交換的資料.
exchange()交換資料.
當傳入null的時候表示從緩衝區中獲取資料.
三 . 例子
我們模擬乙個生產者和消費者的模型
publicclass
exchangertest
catch
(interruptedexception e)
}}).start();
new thread(new
runnable()
catch
(interruptedexception e)
}}).start();
}}
注意,我們獲取資料的時候只需要傳入乙個null就能完成任務.
四 . 理解
我們可以將交換空間理解為生產者和消費者模型之中的緩衝區,利用這個緩衝區的概念我們能夠實現執行緒之間的資料交換,實際上著也是一種同步的方式.
因為當交換空間沒有資料的時候,就會阻塞那個獲取執行緒的執行緒,因此這個也算乙個實現執行緒同步的方式.
多執行緒同步輔助類
同步輔助類之訊號量 允許指定共享資源數量,可以允許指定數量的執行緒同時訪問資源 與同步的區別在於,同步時,一次只能乙個執行緒訪問資源 author administrator public class semaphoredemo catch interruptedexception e start ...
執行緒輔助類 五 Phaser
三 使用示例 phaser是一類執行緒輔助類,它可用於在多個執行緒間,在執行過程多個點的每個點進行同步,同時在每個同步點還可執行自定義操作。2.1 new phaser n 定義n個需同步的執行緒,當然也可以執行緒提交執行前使用phaser.register 進行註冊 2.2 重寫onadvance...
多執行緒傳輸檔案輔助類
基類 using system using system.collections.generic using system.text using system.io namespace socketserver set 下一包 public intnextbag 總包數 public intallb...