多线程模式之 Guarded Suspension Pattern

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(); //有数据后通知所有等待线程
}



你可能感兴趣的:(Pattern)