WEB开发网
开发学院软件开发Java 多线程设计模式 -- suspension 阅读

多线程设计模式 -- suspension

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示:请求对象 Java代码publicclassRequest{privatefinalStringname;publicRequest(Stringname){this.name=name;}publicStringgetName(){returnname;}publicStringtoString(){return&q

请求对象

Java代码   

public class Request { 
  private final String name; 
  public Request(String name) { 
    this.name = name; 
  } 
  public String getName() { 
    return name; 
  } 
  public String toString() { 
    return "[ Request " + name + " ]"; 
  } 
}

工作缓存器

Java代码   

public class RequestQueue { 
  //采用LinkedList 保存客户请求 
  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();//唤醒wait()方法,执行程序 
  } 
}

1 2 3 4  下一页

Tags:线程 设计模式 suspension

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接