Servlet须知--如何使Servlet线程安全
来源:互联网 发布:互联网金融 知乎 编辑:程序博客网 时间:2024/05/06 01:50
Servlet 定义中并未表明是单例,只不过Servlet Container只会对每一个Servlet创建一个实例。每个独立的线程服务一个请求,这样来处理并发。如果希望Servlet Container创建过个实例处理高负载请求,可以实现SingleThreadModel(Servlet2.4之后不建议使用)。
Servlet Container创建一个Servlet实例来并发处理所有请求,这样减少了内存消耗,同时使持久化数据的管理更加简单。
使用Servlet时,需要注意:
1.局部变量是线程安全的(由于并发的原因,实例变量难以保证一致性,当然可以使用同步锁来控制,不过这样效率会大受影响)
2.不变对象是线程安全的,如下:
public Class Player
{
private String name;
private String number;
public Player(String name, String number)
{
this.name = name;
this.number = number;
}
public String getName()
{
return this.name;
}
public String getNumber()
{
return this.number;
}
}
也许你已经注意到,这里没有使用set方法来对域进行复制,这正是刻意而为之。生成对象时,对属性进行复制,之后不再修改,这样的对象在servlet使用中是线程安全的。
3.提供资源唯一入口点(这样会减少并发带来的危险)
.....
- Servlet须知--如何使Servlet线程安全
- 如何开发线程安全的servlet
- 如何开发线程安全的servlet
- 如何开发线程安全的servlet
- 如何开发线程安全的Servlet
- 如何开发线程安全的Servlet
- 如何开发线程安全的Servlet .
- 如何开发线程安全的Servlet
- 如何实现servlet的线程安全
- 如何开发线程安全的Servlet?
- Servlet 线程安全
- servlet线程安全
- servlet线程安全
- servlet线程安全
- Servlet 线程安全
- Servlet线程安全
- servlet的线程安全
- Servlet的线程安全
- <c:forEach>标签的使用
- 编码问题
- Visual C++编程技巧---常用控件和组件
- struts servlet API
- java6-多态
- Servlet须知--如何使Servlet线程安全
- Matlab的GUI的工作原理及流程
- 微软暑期实习 项目经理英语能力测试题
- c:set标签
- Windows 8中的Popup使用方式
- Linux中的system函数的实现和解释
- Visual C++编程技巧---标题栏和菜单栏
- SQL Server 代理 开机自动运行
- Java IO复习