美文网首页
volatile关键字测试

volatile关键字测试

作者: 养一只tom猫 | 来源:发表于2020-05-17 21:27 被阅读0次
public class VolatileTest {
  //volatile
    static boolean flag = false;

    public static void main(String[] args) {
        new Thread(){
            @Override
            public void run() {
                System.out.println("第一个线程开始");
                while (!flag){}
                System.out.println("第一个线程结束");
            }
        }.start();

        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        new Thread(){
            @Override
            public void run() {
                System.out.println("flag 已经 等于 true");
                flag = true;
            }
        }.start();
    }

}

此处flag在线程二中更改为true,第一个线程并不会察觉到。
但是加了volatile关键字保证一个内存的可见性,测试结果就和预想一样。

相关文章

网友评论

      本文标题:volatile关键字测试

      本文链接:https://www.haomeiwen.com/subject/rxdeohtx.html