一、产生原因
1.当多个线程操作共享空间中的变量的时候,可能造成安全问题
例如:一个线程更显变量之前,另一个线程读到了旧值并已经更新了,导致该线程再去更新的时候,更新的值就已经不正确了。(可用CAS)
2.结合内存空间的共享性,当多个线程同时操作堆空间中对象的成员变量的时候,或者操作方法区中的静态变量时,就会造成线程安全问题。
原因总结:1.是多线程环境。2.有共享数据。3.有多条语句操作共享数据。
一、产生原因
1.当多个线程操作共享空间中的变量的时候,可能造成安全问题
例如:一个线程更显变量之前,另一个线程读到了旧值并已经更新了,导致该线程再去更新的时候,更新的值就已经不正确了。(可用CAS)
2.结合内存空间的共享性,当多个线程同时操作堆空间中对象的成员变量的时候,或者操作方法区中的静态变量时,就会造成线程安全问题。
原因总结:1.是多线程环境。2.有共享数据。3.有多条语句操作共享数据。