玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
2014-04-26 22:57
357 查看
servlet默认是存在线程安全问题的,但是说白了,servlet的线程安全问题实际上就是多线程的线程安全问题,因为servlet恰巧是一个多线程才会出现安全性问题。
浏览器每次通过http协议去提交请求,都会实例化一个servlet对象,即产生一个线程,如果他们操作的是同一个对象,应该把该变量定义成实例变量,但这就可能发生线程不安全的问题。下面举个简单的例子:
张三看到仓库里有3件物品,他要去拿两件,但这时李四也来了,抢先他一步拿了两件物品,当张三拿的时候,仓库根本无法提供给他两件物品。这就是线程不安全。
这种情况下应该使用synchronized加锁装置保证同一时刻只有一个线程运行,只有当这个线程运行完并释放锁,下一个线程才能运行。
还有一种情况是多个用户操作的不是同一个变量,这时就应该将变量定义为局部变量,他们各自操作各自的对象,各个线程之间不会相互干扰,也不会产生线程安全性问题。
浏览器每次通过http协议去提交请求,都会实例化一个servlet对象,即产生一个线程,如果他们操作的是同一个对象,应该把该变量定义成实例变量,但这就可能发生线程不安全的问题。下面举个简单的例子:
张三看到仓库里有3件物品,他要去拿两件,但这时李四也来了,抢先他一步拿了两件物品,当张三拿的时候,仓库根本无法提供给他两件物品。这就是线程不安全。
这种情况下应该使用synchronized加锁装置保证同一时刻只有一个线程运行,只有当这个线程运行完并释放锁,下一个线程才能运行。
还有一种情况是多个用户操作的不是同一个变量,这时就应该将变量定义为局部变量,他们各自操作各自的对象,各个线程之间不会相互干扰,也不会产生线程安全性问题。
相关文章推荐
- 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
- 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
- Servlet线程不安全问题及解决办法
- javaweb-07-Servlet的线程安全问题
- java-web之servlet中的线程安全问题
- Servlet模拟网上售票问题,解决线程的安全问题
- Servlet和JSP的线程安全问题
- [常见问题]解决创建servlet 找不到webservlet包.
- servlet web 乱码问题透彻解决
- java 多线程学习之多生产者多消费者产生的线程安全问题分析与解决:Lock和Condition
- ACE的ACE_Logging_Strategy类中的一个多线程安全问题的发现及解决过程
- web安全扫描问题(常见的)分析以及解决方式
- 线程安全问题及解决办法
- 解决servlet在web.xml中的路径跳转问题
- 【javaweb:Servlet】解决Servlet页面输出中文乱码问题
- 玩转Web之servlet(四)---B/S是怎样使用http协议完毕通信过程的
- servlet、struts1和struts2的线程安全问题
- java通过代码控制线程状态,解决线程不安全的问题。
- javaWeb自己定义可排序过滤器注解,解决Servlet3.0下@WebFilter注解无法排序问题
- Servlet线程不安全问题