Servlet 线程安全问题
时间长了,很多比较基础的东西,现在回顾下,
1. Servlet在容器中,第一次被客户端访问,生成一个实例.
2 . 第2,3...就不再生成实例了(就是Singleton),容器分配多个线程.
3. 但public 成员变量引起线程的不安全性(Servlet 线程本来是安全的).
解决方法,
1)让Servlet 实现 SingleThreadModel 接口 (不建议使用)
2) 同步对共享数据的操作 (当访问量大了,内存开销大)
3) 避免使用 public 变量,尽量用局部 (这个最好)
[面试 别人问你,servlet 会被实例化(产生)多少次(对象),成员变量的值在每次访问是否会变等.]
更多信息可以参考: