Servlet多线程问题

Servlet本身是单实例的,这样当多个用户同时访问某个Servlet时,会访问该唯一的Servlet实例中的成员变量,如果对成员变量进行写入工作,那就会导致Servlet的多线程问题,即数据不一致。

解决Servlet多线程同步问题的方案:

  1,Servlet实现了javax.servlet.singleThreadModel(Servlet2.4中已经废弃该接口),此时的Servlet容器将保证Servlet实例是以单线程的方式运行,也就是说同一时刻,只会有一个线程运行Servlet的service()方法。   不推荐使用,大大降低了效率。

  2,去除实例变量,使用局部变量  推荐

  3,使用同步代码块 synchronized{...}  不推荐使用

原文地址:https://www.cnblogs.com/cuiliang/p/2221106.html