1. 程式人生 > >Java 多執行緒設計模式之Guarded Suspension

Java 多執行緒設計模式之Guarded Suspension

Guarded Suspension 模式核心是一個受保護的方法(Guarded Method)。該方法執行其所要真正執行的操作時需要滿足特定的條件(Predicate, 保護條件)。類似與 wait/notify, 當條件不滿足時,執行受保護的執行緒會被掛起進入等待(WAITING) 狀態,直到該條件滿足時該執行緒才會繼續執行。

JDK 1.5 提供的java.util.concurrent.LinkedBlockingQueue 就使用了 Guarded Suspension 模式。 該類的take 方法用於從佇列中取出一個元素,如果take 方法被呼叫時,佇列是空,則當前執行緒被阻塞。
設計模式UML圖
這裡寫圖片描述

這裡寫圖片描述