Servlet线程安全问题。
2016-09-24 13:17
246 查看
1、Servlet是单实例多线程环境下运行的。
2、什么时候程序存在线程安全问题?
* 多线程并发; * 有共享的数据; * 共享数据有修改操作;
3、在JVM中,哪些数据可能会存在线程安全问题?
* 局部变量内存空间不共享,一个线程一个栈,局部变量在栈中存储,局部变量不会存在线程安全问题; * 常量不会被修改,所以常量不会存在线程安全问题; * 所有线程共享一个堆: ** new出来的对象在堆内存中存储,对象内部有“实例变量”,所以“实例变量”的内存多线程是共享的,多线程共同访问并且涉及到修改操作的时候就会存在线程安全问题; * 所有线程共享一个方法区: ** 方法区中有静态变量,静态变量的内存也是共享的,若涉及到修改操作,静态变量也存在线程安全问题。
4、数据库中的线程安全问题:
* 多个线程共享同一张表,并且同时去修改表中一些记录,那么这些记录就存在线程安全问题。
5、怎么解决线程安全问题?
* 不使用实例变量,尽量使用局部变量; * 若必须使用实例变量,那么我们可以考虑将该对象变成多例对象,一个线程一个java对象,实例变量的内存也不会共享; * 若必须使用单例,那就只能使用synchronized线程同步机制,线程一旦排队执行,则吞吐量降低,降低用户体验。
6、Servlet怎么解决线程安全问题?
* 不使用实例变量,尽量使用局部变量; * Servlet必须是单例的,所以只能考虑synchronized线程同步机制。
相关文章推荐
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- Servlet 线程安全问题
- Servlet线程安全的问题----总结(应付以后的面试)
- action,servlet单实例线程安全问题
- servlet线程安全问题
- Servlet线程安全问题
- servlet与Struts action线程安全问题分析
- servlet线程安全问题
- 深入理解Servlet线程安全问题
- 关于servlet线程安全问题
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- servlet线程安全问题分析
- servlet与Struts action线程安全问题分析!(转)
- 深入研究servlet 实例,线程安全等方面问题
- servlet与Struts action线程安全问题
- servlet与Struts action线程安全问题分析
- servlet线程安全问题分析
- 深入理解Servlet线程安全问题