servlet的线程安全。。。

    servlet的生存周期是由web容器负责的。。。web

大体分为 实例化,初始化(init),处理请求(service),销毁(destroy)四步。安全

这里须要注意的是 一旦servlet被实例化后,一个实例能够处理多个请求(单例)。。。此时就不得不考虑线程安全的问题。。。this

对于servlet来讲,它的共享资源 就是 “实例变量”。。。spa

解决方法大体有如下几种。。。。线程

1。servlet中避免使用 “实例变量”,须要的地方所有用“局部变量”。。。。code

2。经过同步机制 对实例变量操做进行互斥操做。。。接口

     synchronized(this){ ....}资源

    Lock lock = new ReentrantLock(); lock.lock();....... lock.unlock();
同步

3。强制没个请求实例化一个servlet。 servlet

    建造一个 实现SingleThreadModel接口的servlet。。。

相关文章
相关标签/搜索