1. 程式人生 > >《Java多執行緒程式設計實戰》—— 第11~14章

《Java多執行緒程式設計實戰》—— 第11~14章

第11章 Serial Thread Confinement(序列執行緒封閉)模式

將多個併發的任務存入佇列實現任務的序列化。唯一的工作者執行緒。
避免加鎖。本質是使用一個開銷更小的鎖替換一個可能的開銷更大的鎖。

第12章 Master-Slave(主僕)模式

將一個任務分解為若干個語義等同的子任務,由專門的工作者執行緒來並行執行這些子任務。通過整合各個子任務的處理結果生成最後的結果。

第13章 Pipeline(流水線)模式

將一個任務分解為若干個處理階段,每個處理階段的輸出作為下一階段的輸入,並且各個處理階段都有相應的工作者執行緒去執行相應的計算。
有依賴關係

的任務進行並行處理。
但是Pipeline模式中各個處理階段所使用的工作者執行緒或者執行緒池、表示各個處理階段的輸入/輸出物件的建立和移動都有時間和空間開銷。因此,Pipeline模式適合處理規模較大的任務。

第14章 Half-sync/Half-async(半同步/半非同步)模式

分層架構。包含3個層次:非同步任務層、同步任務層和佇列層。
核心思想是將系統中的任務進行恰當的分解,使各個子任務落入合適的層次。
低階的任務或者耗時較短的任務可以安排在非同步任務層。
高階的任務或者耗時較長的任務可以安排在同步任務層。
兩層之間通過佇列層進行解耦:佇列層負責兩層之間的資料交換。