导语
什么是Guarded Suspension模式,Suspension 意思是挂起,暂停的。而Guarded则表示担保的意思,连起来的就是确保挂起。也就是说当线程访问某个对象的时候,发现条件不满足,就暂时挂起等待条件满足的时候再次发起访问,这一点与Balking设计模式正好是相反的(Balking在遇到条件不满足的时候回放弃)。在Java并发包中BlockingQueue大量的使用了Guarded Suspension设计模式
Guarded Suspension设计模式
什么是Guarded Suspension 设计模式
Suspension 表示挂起、暂停的意思,而Guarded 则是担保的意思,连起来就是确保挂起。也就是当线程访问某个对象的时候,发现条件不满足,就暂时的挂起当条件满足的时候再次进行访问,这个设计与Balking设计模式刚好相反(Balking在遇到条件不满足的时候回主动放弃)
Guarded Suspension 设计模式是很多的设计模式的基础,例如生产消费模式,Worker Thread设计模式,等等。在Java并发包中的BlockingQueue也使用到了Guarded Suspension 设计模式。
在Java源码中java.util.concurrent.ArrayBlockingQueue类为BlockingQueue接口的实现类其中有两个方法是值得关注的
public boolean offer(E e) {
<
Java并发编程:Guarded Suspension模式解析
Guarded Suspension设计模式确保线程在条件不满足时挂起,待条件满足后继续执行。它与Balking模式相反,常用于 BlockingQueue。ArrayBlockingQueue类的take()和offer()方法体现了这一模式。通过控制临界值,该模式保证了线程安全和公共资源的高效利用。
订阅专栏 解锁全文
7261

被折叠的 条评论
为什么被折叠?



