全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

tomcat中Servlet对象池介绍及如何使用

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小时内与您取得联系。