线程不安全的原因(实际开发中经常出bug的地方)

1、抢占式执行(最常出现)

2、多个线程修改一个变量

那有哪些情况是安全的呢!!!

(1)一个线程修改同一个变量--->安全

(2)多个线程读取同一个变量---->安全

(3)多个线程修改不同变量----->安全

3、修改操作不是原子(不是一气呵成)的

4、内存可见性,引起的线程不安全

5、指令重排序,引起的线程不安全

你可能感兴趣的:(bug)