Java 多线程设计模式之Guarded Suspension

Guarded Suspension 模式核心是一个受保护的方法(Guarded Method)。该方法执行其所要真正执行的操作时需要满足特定的条件(Predicate, 保护条件)。类似与 wait/notify, 当条件不满足时,执行受保护的线程会被挂起进入等待(WAITING) 状态,直到该条件满足时该线程才会继续运行。

JDK 1.5 提供的java.util.concurrent.LinkedBlockingQueue 就使用了 Guarded Suspension 模式。 该类的take 方法用于从队列中取出一个元素,如果take 方法被调用时,队列是空,则当前线程被阻塞。
设计模式UML图
Java 多线程设计模式之Guarded Suspension

Java 多线程设计模式之Guarded Suspension