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」
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」
相关文章推荐
- 分析很透彻的C/C++ 基本类型及是否需要多线程锁
- IntelliJ IDEA通过Tomcat启动项目过程分析
- Tomcat源码分析-Bootstrap类
- tomcat源码分析(二)启动---Debug方式
- 多线程-线程安全问题的产生原因分析以及同步代码块的方式解决线程安全问题
- Libevent源码分析-----多线程、锁、条件变量(一)
- Tomcat学习总结(9)—— Tomcat优化时的参数分析
- tomcat源码分析学习笔记(五)
- 多线程分析
- Tomcat源码分析之Connector
- Tomcat架构分析之Container容器
- Java1.5 多线程新特性 Concurrent包分析
- Tomcat6源代码分析-构建tomcat
- tomcat启动分析
- Tomcat -- 源码分析No2(连接器Connector)
- tomcat-jdbc Pool 源码实现简单分析
- Tomcat配置技巧精华详解分析
- tomcat架构分析
- Tomcat源码分析 -- 开篇
- Android多线程分析之二:Thread的实现