tomcat中Servlet对象池

Servlet在不实现SingleThreadModel的情况下运行时是以单个实例模式,如下图,这种情况下,Wrapper容器只会通过反射实例化一个Servlet对象,对应此Servlet的所有客户端请求都会共用此Servlet对象,而对于多个客户端请求tomcat会使用多线程处理,所以应该保证此Servlet对象的线程安全,多个线程不管执行顺序如何都能保证执行结果的正确性。例如刚做web应用开发时可能会犯的一个错误:在某个Servlet中使用成员变量累加去统计访问次数,这就存在线程安全问题。
为了支持一个Servlet对象对应一个线程,Servlet规范提出了一个SingleThreadModel接口,tomcat容器必须要完成的机制是:如果某个Servlet类实现了SingleThreadModel接口则要保证一个线程独占一个Servlet对象。假如线程1正在使用Servlet对象1,则线程2只能用Servlet对象2。
针对SingleThreadModel模式,tomcat的Wrapper容器使用了对象池策略,Wrapper容器会有一个Servlet堆保存若干个该Servlet对象,当需要该Servlet对象时从堆中pop一个对象,而当用完后则push回堆中。Wrapper容器中最多可以有20个该Servlet对象,例如xxxServlet类的对象池,已经有20个线程占用了20个对象,那么第21个线程执行时就会阻塞等待,直到对象池中有可用的对象才继续执行。
整个流程如下图所示,某个线程处理客户端请求,它首先尝试从Servlet对象池中获取Servlet对象,此时如果对象池有可用对象则直接返回一个对象,如果不够使用则继续实例化Servlet对象并push进对象池,但Servlet对象的总数量必须保证在20个以内,如果20个Servlet对象都被其他线程使用了,那么就必须要等到其他线程用完放回后才能获取,此时该线程会一直阻塞等待。从对象池中获取到Servlet对象后则调用Servlet对象的service方法对客户端请求进行处理,处理完后再将Servlet对象放回对象池中。
本节介绍了Servlet对象池,它是为了支持Servlet规范SingleThreadModel接口而引入的,它就是一个栈结构,需要时就pop一个对象,使用完就push回去。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Servlet对象池
# tomcat
# Servlet对象池介绍
# IDEA2021 tomcat10 servlet 较新版本踩坑问题
# 深入了解tomcat中servlet的创建方式实现
# 详解Tomcat是如何实现异步Servlet的
# servlet和tomcat_动力节点Java学院整理
# Tomcat怎么实现异步Servlet
# tomcat中Servlet的工作机制详细介绍
# 详解从源码分析tomcat如何调用Servlet的初始化
# 池中
# 客户端
# 多个
# 时就
# 用完
# 放回
# 如下图
# 是一个
# 堆中
# 情况下
# 使用了
# 会有
# 最多
# 都能
# 提出了
# 它是
# 这就
# 只会
# 用了
# 希望能
相关文章:
平台云上自主建站:模板化设计与智能工具打造高效网站
在线教育网站制作平台,山西立德教育官网?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
安云自助建站系统如何快速提升SEO排名?
实现虚拟支付需哪些建站技术支撑?
如何高效完成独享虚拟主机建站?
电商平台网站制作流程,电商网站如何制作?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
制作网站怎么制作,*游戏网站怎么搭建?
如何确保西部建站助手FTP传输的安全性?
香港服务器部署网站为何提示未备案?
,购物网站怎么盈利呢?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何通过WDCP绑定主域名及创建子域名站点?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
网站制作企业,网站的banner和导航栏是指什么?
建站之星客服服务时间及联系方式如何?
网站制作软件有哪些,制图软件有哪些?
长沙企业网站制作哪家好,长沙水业集团官方网站?
建站主机解析:虚拟主机配置与服务器选择指南
网站制作大概多少钱一个,做一个平台网站大概多少钱?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
昆明网站制作哪家好,昆明公租房申请网上登录入口?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
建站主机CVM配置优化、SEO策略与性能提升指南
如何用花生壳三步快速搭建专属网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
网站按钮制作软件,如何实现网页中按钮的自动点击?
内网网站制作软件,内网的网站如何发布到外网?
宝塔面板创建网站无法访问?如何快速排查修复?
如何高效利用亚马逊云主机搭建企业网站?
建站主机是否属于云主机类型?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何快速搭建高效服务器建站系统?
免费网站制作appp,免费制作app哪个平台好?
如何在IIS中新建站点并配置端口与IP地址?
如何配置IIS站点权限与局域网访问?
建站之星价格显示格式升级,你的预算足够吗?
建站168自助建站系统:快速模板定制与SEO优化指南
Swift中switch语句区间和元组模式匹配
C#怎么使用委托和事件 C# delegate与event编程方法
如何快速搭建安全的FTP站点?
如何制作算命网站,怎么注册算命网站?
如何选择建站程序?包含哪些必备功能与类型?
如何在阿里云部署织梦网站?
如何在腾讯云服务器快速搭建个人网站?
如何用wdcp快速搭建高效网站?
如何快速搭建高效WAP手机网站吸引移动用户?
*请认真填写需求信息,我们会在24小时内与您取得联系。