Servlet实例数量到底多少,是否线程安全
【摘要】
通过注解或servlet声明都能控制 servlet 容器如何提供 servlet 实例。
对于非分布式(默认)的 servlet,servlet 容器对于每个 Servlet 声明必须且只能产生一个实...
通过注解或servlet声明都能控制 servlet 容器如何提供 servlet 实例。
对于非分布式(默认)的 servlet,servlet 容器对于每个 Servlet 声明必须且只能产生一个实例。
但若 Servlet 实现了 SingleThreadModel 接口,servlet 容器可选择实例化多个实例以便:
- 处理高负荷请求
- 或串行化请求到一个特定实例
若 servlet 部署分布式环境,容器可为每个JVM的每个 Servlet 声明产生一个实例。但若在分布式环境中 servlet 实现了 SingleThreadModel 接口,此时容器可以为每个容器的 JVM 实例化多个 Servlet 实例。
Single Thread Model
SingleThreadModel 接口的作用是保证一个特定 servlet 实例的service方法在一个时刻仅能被一个线程执行。注意,此保证仅适于每个 servlet 实例,因为容器可以选择池化这些对象。
有些对象可以在同一时刻被多个 servlet 实例访问,如 HttpSession 实例,可以在一个特定的时间对多个 Servlet 可用,包括那些实现了 SingleThreadModel 接口的 Servlet。
参考
- https://download.oracle.com/otndocs/jcp/servlet-3_1-fr-spec/index.html
文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。
原文链接:javaedge.blog.csdn.net/article/details/121040573
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)