并发何时出现同步问题
之前看Java并发编程方面的书,虽说当时看的时候感觉学了些东西。但毕竟是学生,没处理过并发问题。所以对并发问题理解并不透彻。
依我理解,多线程并发不一定会产生线程安全问题,也就不需程序员实现线程同步。产生线程不安全问题需要以下条件:
- 多线程并发;大致意思就是多个线程同时发生,如果线程一个接一个的发生肯定是不行的。
- 存在竞争行为;可以简单理解成并发线程要同时对一个变量操作:
如线程A在它Runnable方法里操作一个实例变量的值,就在A要完成最后一步来取出这个值时。
线程B管你这么多,在它的Runnable方法里就添加一条语句,给你把变量值重新set改了。
这时线程A肯定取不到它本来想要的值。
hear first Servlet&JSP
读这本书时,接触到三种作用域的线程安全问题。分别是
- ServletContext(上下文作用域)
- ServletRequest(请求作用域)
- HttpSession(会话作用域)