書名: Java多線程編程實戰指南:設計模式篇(第2版)作者名: 黃文海本章字數: 14字更新時間: 2021-10-15 19:24:56
第4章
Guarded Suspension(保護性暫掛)模式
4.1 Guarded Suspension模式簡介
在多線程編程中,為了提高并發性,往往將一個任務分解為不同的部分,將其交由不同的線程來執行。當這些線程間相互協作時,仍然可能會出現一個線程等待另一個線程完成一定的操作后其自身才能繼續運行的情形。這好比汽車行駛過程中油量不足,司機只好到加油站等工作人員將油加滿后才能繼續行駛。
Guarded Suspension模式可以幫助我們解決上述等待問題。該模式的核心思想是,如果某個線程在執行特定的操作前需要滿足一定的條件,則在該條件未滿足時將該線程暫停運行(即暫掛線程,使其處于等待(WAITING)狀態,直到該條件滿足,才繼續運行該線程)。在這里,讀者可能會想到wait/notify[1]。的確,wait/notify可以用來實現Guarded Suspension模式。但是,Guarded Suspension模式還要解決wait/notify所解決的問題之外的問題。