打赏

servlet多线程问题

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

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

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

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

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

posted @ 2016-06-23 15:27  海米傻傻  阅读(218)  评论(0编辑  收藏  举报