并发编程中三个比较重要的概念
1.原子性
2.可见性(主存缓存可见性)
3.有序性(顺序性)【java重排序只要求最终一致性,它会影响多线程编程】
volatile:
这里不能保证并发原子性,两个线程操作可能导致输出值重复:
我们可以将INIT_VALUE的值变化过程进行分解
三个步骤有一个步骤放弃cpu执行权,就导致原子性得不到保证,只能加锁
并发编程中三个比较重要的概念
1.原子性
2.可见性(主存缓存可见性)
3.有序性(顺序性)【java重排序只要求最终一致性,它会影响多线程编程】
volatile:
这里不能保证并发原子性,两个线程操作可能导致输出值重复:
我们可以将INIT_VALUE的值变化过程进行分解
三个步骤有一个步骤放弃cpu执行权,就导致原子性得不到保证,只能加锁