原子性:
线程任务不可再分。
int i = 1;
i++;
原子类 AtomicXXX
可见性:
线程之间的操作是互相不可见的。
volatile
//线程A如果,flag为true,就运行打印语句 A: true
Thread t1 = new Thread(() -> {
while (true) {
if (flag) {
System.out.println("A:" + flag);
}
}
});
//100ms之后将flag变为true
Thread t2 = new Thread(() -> {
try {
Thread.sleep(100);
flag = true;
System.out.println("B:" + flag);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
});
t1.start();
t2.start();
}
有序性:
程序运行顺序不能改变