模式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(); } }
浙公网安备 33010602011771号