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

目录
相关文章
|
7月前
|
Java
多线程实例练习题~
多线程实例练习题~
|
3月前
|
前端开发 小程序 Java
探索研究Servlet 实例
【9月更文挑战第23天】
33 11
|
7月前
|
Java
Servlet 教程 之 Servlet 实例 1
Servlet是Java类,用于处理HTTP请求,常用于扩展`HttpServlet`。
55 3
|
7月前
|
Java Unix 应用服务中间件
Servlet 教程 之 Servlet 实例 3
Servlet是Java写的HTTP服务程序,用于扩展HTTP请求。在Tomcat的默认目录结构下,Servlet应用的类文件需放在WEB-INF/classes里。以`com.myorg.MyServlet`为例,对应的`.class`文件应在此路径下。配置`web.xml`,添加Servlet和映射,。
52 2
|
7月前
线程间通信实例之轮流打印ABC
线程间通信实例之轮流打印ABC
58 0
|
7月前
|
并行计算 Python
python 多线程应用实例
python 多线程应用实例
|
安全 Java 调度
【Java|多线程与高并发】线程安全问题以及synchronized使用实例
Java多线程环境下,多个线程同时访问共享资源时可能出现的数据竞争和不一致的情况。
|
安全 Java 微服务
美团Java研发岗二面:什么叫线程安全?servlet是线程安全吗?
再过一个月的时间就是金九银十了,相信不少的朋友对于已经做好了充足的准备来应对这一次春招,小编对大家也没有太多的建议和帮助,分享一些你们面试上面可以用得到的一些面试题。今天主要给大家分享多线程(线程安全)方面的面试题,看到文章的小伙伴一定要看到后面哦,有海量的面试题分享给大家哟。
|
程序员 C++ 计算机视觉
C++多线程编程和同步机制:详解和实例演示
C++中的多线程编程和同步机制使得程序员可以利用计算机的多核心来提高程序的运行效率和性能。本文将介绍多线程编程和同步机制的基本概念和使用方法。
209 0
C++多线程编程和同步机制:详解和实例演示
|
Java
多线程实例代码(demo)
多线程实例代码(demo)
96 0