go4it

just do it

模式3-GuardedSuspension

参考《java多线程设计模式》

要求线程等候,以保障实例安全。

一个server线程取出请求进行处理,一个client线程放进请求待处理。

public class RequestQueue {
    private final LinkedList queue = new LinkedList();
    public synchronized Request getRequest() {
        while (queue.size() <= 0) {
            try {                                   
                wait();
            } catch (InterruptedException e) {      
            }                                       
        }                                           
        return (Request)queue.removeFirst();
    }
    public synchronized void putRequest(Request request) {
        queue.addLast(request);
        notifyAll();
    }
}

posted on 2009-05-07 22:29  cxccbv  阅读(246)  评论(0)    收藏  举报

导航