`
xly_971223
  • 浏览: 1276938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多线程模式之 Guarded Suspension Pattern

    博客分类:
  • java
 
阅读更多
Guarded Suspension Pattern这个模式翻译过来应该叫保护性暂停模式吧
意思是:如果不停下来的话前面会有危险

这个模式有4个元素
Request   请求
RequestQueue  请求队列
ClientThread  发送请求的类
ServerThread  接收请求的类

其实有点类似生产者/消费者模式
ClientThread生产Request并放入RequestQueue
ServerThread从RequestQueue 中取数据然后处理

这个模式核心代码在 入队和出队方法上 如下
public synchronized Request getRequest(){
    while(queue.size() <= 0){ //如果队列没有数据 就一直等等等
        ...
        wait();
        ...
    }

    return queue.removeFirst();
}

public synchronized void putRequest(request){
    queue.addLast(request); 
    notifyAll(); //有数据后通知所有等待线程
}



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics