什么是原子性问题
原子性是指在一个操作中,cpu不可以在中途暂停然后再调度,要么一次执行完成,要么就不执行。
在Java中当我们讨论一个操作具有原子性问题,是一般就是指这个操作会被线程的随机调度打断而产生的一系列的问题。
举例说明一下
我们先来看一些例子,来了解什么是原子性的操作
a = true; //原子性
a = 5; //原子性
a = b; //非原子性,分两步完成,第一步加载b的值,第二步将b赋值给a
a = b + 2; //非原子性,分三步完成
a ++; //非原子性,分三步完成:1、读取a的值,2、计算a的值+1,3、赋值
接下类我们看一个由于原子性导致的问题:
public class Singleton {
private static Singleton singleton