您的位置:首页 > 运维架构 > Tomcat

Tomcat5.0.28 分析-多线程和Web应用加载

2007-01-04 13:57 295 查看
Tomcat5.0.28source的分析-多线程和Web应用加载
1.说明:
主要分析TomcatV5的多线程处理好部分的逻辑和Web应用的配置和接触以及加载的逻辑。全文分析着重于多线程的线程池的构造和Servlet的出来流程进行。

2.Multi-Thread Pool部分的逻辑
图1:线程逻辑的主要时序图。



(図1)
执行结果:
StandardService被CoyoteConnector进行初期化和启动操作后,处理使用的ThreadPool和ServerSocket也准备完成。然后可以从用户那里接受HttpRequest的请求来进行处理。
詳しい説明:
ア)CoyoteConnectorのinitialize。
そのメソッド中で関するオプジェクトがインスタンスされました。更に、PoolTcpEndPointオプジェクト中でPort=8080のServerSocketも作成しました。
イ)CoyoteConnectorのStart
そのメソッド中で、あるひまなThreadがTheadPoolから選出されます。このThreadはServerSocketからSocketをAcceptして、Http11Processerのprocessメソッドを実施します。最後にCoyoteAdapterを利用して、TomcatのPipeLine機能を呼び出して、色々なContainerがinvokeされました。

3.TomcatのPipeLineとValveのLogicを利用して、Servletを処理Logic
以上の2によって、CoyoteAdapterのserviceメソッド中のconnector.getContainer().invokeメソッドからTomcatのPipeLine機能を呼び出します。
この部分は前期調査しました。調査資料を参照してください。主なシーケンス図
「図2」と「図3」を表示します。

「図2」



最後にStandardContextValveはSerletをServiceするの特別な処理が始めます。その部分のLogic以下に説明しあす。StandardContextValveのInvoke処理Flow「図3」
StandardContextVaveがユーザが呼び出すServlet対応StandardWrappreを呼び出す。それに、ServletのFilter機能を利用して、Serveltを実行します。

「図3」

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: