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