美文网首页
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