servlet线程安全问题
我知道servlet不是线程安全的,如果在servlet中定义了成员变量,在多线程环境中,可能就会出现问题。比如我想做个页面访问量的计数器,定义了一个成员变量count,每次访问就在doGet方法中加1,那么该如何做才能保证它的计数是准确的呢?除了加锁之外。上次面试就被问了这个问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
把count加在application上面
如果count是Servlet成员变量,那么需要用synchronized来同步。
线程安全问题可以参考我写的一篇博客:http://xxgblog.com/2013/05/16/java-thread-safe/
使用原子类,比如
AtomicInteger
或者AtomicLong
参考:Java AtomicInteger Example