您的位置:首页 > 其它

Servlet线程安全问题

2017-04-01 13:53 204 查看
从Servlet生命周期的四个方法可以知道,一个Servlet的构造方法和init()是只被调用一次的,而service()则被多次调用,由此可见Servlet是单实例多线程的。

既然是多线程的,那么必然存在线程安全的问题,那么解决方案是什么呢?

1.将使用共享数据(例如成员变量)的代码块利用synchronized关键字同步

2.尽量避免使用成员变量,如果非用不可,那么必须将用到成员变量的代码块进行同步(synchronized),并且尽量缩小代码块的范围,以避免由于同步代码块而造成的并发效率降低
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息