volatile是什么:volatile是java虚拟机提供的轻量级的同步机制
特性
1、保证可见性 2、不保证原子性 3、禁止指令重排
可见性示例
public class Test1 {
public static void main(String[] args) {
Mydata mydata = new Mydata();
new Thread(()->{
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mydata.addnum();
System.out.println("add");
},"aaa").start();
new Thread(()->{
while (mydata.getNumber()==0){
}
System.out.println("1");
}).start();
}
}
class Mydata{
volatile Integer number=0;
public void addnum(){
this.number = 60;
}
public Integer getNumber() {
return number;
}
}