首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Servlet兑现线程安全的三种方式

2012-08-21 
Servlet实现线程安全的三种方式.Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负

Servlet实现线程安全的三种方式.

Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。

往往我们写程序时,往往会碰到线程安全问题. 在程序设计中如果在sevlet中使用实例变量,则会发生线程不安全问题..

?

?

可以使用下面三种方式解决线程安全问题:

?

方式一:在Servlet中不使用全局变量.

线程安全问题是由实例变量造成的,只要在Servlet里面的任何方法里面都不使用实例变量,那么该Servlet就是线程安全的。

?

?

方式二:同步共享的数据,使用synchronized(this){//共享数据.}同步块.

使用synchronized 关键字能保证一次只有一个线程可以访问被保护的区段,在本论文中的Servlet可以通过同步块操作来保证线程的安全。

?

?

方式三:实现SingleThreadModel接口.

该接口指定了系统如何处理对同一个Servlet的调用。如果一个Servlet被这个接口指定,那么在这个Servlet中的service方法将不会有两个线程被同时执行,当然也就不存在线程安全的问题。

?

?

热点排行