WEB开发网
开发学院软件开发Java Tomcat 系统架构与设计模式,第 1 部分: 工作原理... 阅读

Tomcat 系统架构与设计模式,第 1 部分: 工作原理

 2010-05-21 00:00:00 来源:WEB开发网   
核心提示: threadStart() 执行就会进入等待请求的状态,直到一个新的请求到来才会激活它继续执行,Tomcat 系统架构与设计模式,第 1 部分: 工作原理(9),这个激活是在 HttpProcessor 的 assign 方法中,这个方法是代码如下 :清单 7. HttpProcessor.as

threadStart() 执行就会进入等待请求的状态,直到一个新的请求到来才会激活它继续执行,这个激活是在 HttpProcessor 的 assign 方法中,这个方法是代码如下 :

清单 7. HttpProcessor.assign

synchronized void assign(Socket socket) { 
  while (available) { 
    try { 
      wait(); 
    } catch (InterruptedException e) { 
    } 
  } 
  this.socket = socket; 
  available = true; 
  notifyAll(); 
  if ((debug >= 1) && (socket != null)) 
    log(" An incoming request is being assigned"); 
} 

创建 HttpProcessor 对象是会把 available 设为 false,所以当请求到来时不会进入 while 循环,将请求的 socket 赋给当期处理的 socket,并将 available 设为 true,当 available 设为 true 是 HttpProcessor 的 run 方法将被激活,接下去将会处理这次请求。

Run 方法代码如下:

清单 8. HttpProcessor.Run

public void run() { 
  while (!stopped) { 
    Socket socket = await(); 
    if (socket == null) 
      continue; 
    try { 
      process(socket); 
    } catch (Throwable t) { 
      log("process.invoke", t); 
    } 
    connector.recycle(this); 
  } 
  synchronized (threadSync) { 
    threadSync.notifyAll(); 
  } 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:Tomcat 架构

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