问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

[转]几种开源Java Web容器线程池的实现方法简介—Tomcat(一)_百度知...

发布网友 发布时间:2024-10-20 08:57

我来回答

1个回答

热心网友 时间:2024-12-01 12:06

其中Resin从V3.0后需要购买才能用于商业目的,而其他两种则是纯开源的。可以分别从他们的网站上下载最新的二进制包和源代码。
作为Web容器,需要承受较高的访问量,能够同时响应不同用户的请求,能够在恶劣环境下保持较高的稳定性和健壮性。在HTTP服务器领域,ApacheHTTPD的效率是最高的,也是最为稳定的,但它只能处理静态页面的请求,如果需要支持动态页面请求,则必须安装相应的插件,比如mod_perl可以处理Perl脚本,mod_python可以处理Python脚本。
上面介绍的三中Web容器,都是使用Java编写的HTTP服务器,当然他们都可以嵌到Apache中使用,也可以独立使用。分析它们处理客户请求的方法有助于了解Java多线程和线程池的实现方法,为设计强大的多线程服务器打好基础。
Tomcat是使用最广的Java Web容器,功能强大,可扩展性强。最新版本的Tomcat(5.5.17)为了提高响应速度和效率,使用了Apache Portable Runtime(APR)作为最底层,使用了APR中包含Socket、缓冲池等多种技术,性能也提高了。APR也是Apache HTTPD的最底层。可想而知,同属于ASF(Apache Software Foundation)中的成员,互补互用的情况还是很多的,虽然使用了不同的开发语言。
Tomcat 的线程池位于tomcat-util.jar文件中,包含了两种线程池方案。方案一:使用APR的Pool技术,使用了JNI;方案二:使用Java实现的ThreadPool。这里介绍的是第二种。如果想了解APR的Pool技术,可以查看APR的源代码。
ThreadPool默认创建了5个线程,保存在一个200维的线程数组中,创建时就启动了这些线程,当然在没有请求时,它们都处理等待状态(其实就是一个while循环,不停的等待notify)。如果有请求时,空闲线程会被唤醒执行用户的请求。
具体的请求过程是:服务启动时,创建一个一维线程数组(maxThread=200个),并创建空闲线程(minSpareThreads=5个)随时等待用户请求。当有用户请求时,调用 threadpool.runIt(ThreadPoolRunnable)方法,将一个需要执行的实例传给ThreadPool中。其中用户需要执行的实例必须实现ThreadPoolRunnable接口。 ThreadPool首先查找空闲的线程,如果有则用它运行要执行ThreadPoolRunnable;如果没有空闲线程并且没有超过 maxThreads,就一次性创建minSpareThreads个空闲线程;如果已经超过了maxThreads了,就等待空闲线程了。总之,要找到空闲的线程,以便用它执行实例。找到后,将该线程从线程数组中移走。接着唤醒已经找到的空闲线程,用它运行执行实例(ThreadPoolRunnable)。运行完ThreadPoolRunnable后,就将该线程重新放到线程数组中,作为空闲线程供后续使用。
由此可以看出,Tomcat的线程池实现是比较简单的,ThreadPool.java也只有840行代码。用一个一维数组保存空闲的线程,每次以一个较小步伐(5个)创建空闲线程并放到线程池中。使用时从数组中移走空闲的线程,用完后,再归还给线程池。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
13岁一直到18岁晚上经常熬夜会有什么影响 具象表现素描内容简介 ...| 从14世纪文艺复兴到20世纪具象表现绘画 · 168幅画 · 图解西方... 【漫画赏析】比喻具象化——《孤高之人》手法分析 具象美术作品有哪些 具象艺术艺术家介绍 话说 曾经有个演唱会 是初音未来演唱会 39祭 谁知道微信聊天记录删掉了,还能恢复过来吗?有什么软件可以恢复吗?不... 六爻。测缘分。测婚姻 礼仪起源于祭祀的证据是什么? 放射卫生技术服务机构管理办法第二章 申请与受理 医疗卫生机构医学装备管理办法第七章 附则 皮肤上出现紫色小块是咋回事? 放射工作卫生防护管理办法第七章 附则 手机丢失易造成哪些信息泄露 怎么样才能找到被偷的手机 ...查监控查到小偷的身份证号了,已报案,想知道能不能找到他 ~~~··~~~我的手机被盗了。但是我收到短信~~~· 药流不流血就干净了吗 循环风扇和普通风扇哪个更好 循环风扇与普通风扇哪个好 循环风扇和普通风扇哪个更好一点 循环风扇和普通风扇哪个更好一些呢 “HPA”缩写在医学领域中具体指什么? “HPA”缩写在医学领域表示什么? ...我国社会主义现代化进程中的一座重要里程碑? 温暖又很简单的男生昵称 超好听的治愈网名男 ...社会在我国社会主义现代化进程中的重大意义 农村女大学生的出路是什么 14may18_ xxxxxl56endian个是什么意思? 剧场版命运石之门 负荷领域的既视感 STEINSGATE THE MOVIE LOADING AREA... 深入理解Java线程池,剖析LinkedBlockingQueue源码实现 德国留学之图宾根大学简介及申请条件-德国的11所精英大学之一 ...又出场??听说有抱孩子出来哦?!到底是哪一集???哪位道友帮帮忙?_百 ... 图宾根大学院系与专业设置 走进世界医学名校——图宾根大学医学院 图宾根大学图宾根与德国名人 2022德国留学|精英大学--图宾根大学新增5个全英文授课项目,申请无须... 阴川蝴蝶君人物资料 经济范畴理论表现 关于联通卡的定向流量 冀n是哪里的牌照? 不朽法医第六集18分24秒时的背景音乐是古典小提琴曲,我记得应该是小提琴... ...在主持人讲话的时候背景音乐,是小提琴曲,节奏很快.我想知道曲名.请... ...那片头曲 有没有谁有小提琴版的背景音乐啊 我要用为诗朗诵背景音乐... ...吴印咸(上)这个片子的背景音乐是什么(小提琴曲) 豪斯登堡的新娘背景音乐的小提琴曲是什么呀?就是柯南他们和一家豪门成员... ...违规行为,已被限制使用。如希望继续使用该帐号,请规范个人行为... ...异常行为现已被限制使用,如需继续使用该账号,请规范个人行为... 形容很冰冷冷的成语