美文网首页程序员
Java中volatile的使用及说明

Java中volatile的使用及说明

作者: 夹胡碰 | 来源:发表于2020-12-22 09:09 被阅读0次

    1. volatile具备两项特性:

    1. 保证此变量对所有线程的可见性。
    2. 禁止指令重排序优化

    以下摘自 深入理解Java虚拟机 第三版 12章 Java内存模型与线程

    2. volatile测试

    public class MainTest {
    
        private volatile static boolean bool = true;
    
        public static void main(String[] args) throws InterruptedException {
            Thread thread = new Thread(new Thread0());
            thread.start();
    
            Thread.sleep(2000);
            bool = false;
            System.out.println("main - 结束");
        }
    
        public static class Thread0 implements Runnable{
    
            @Override
            public void run() {
                while (bool){//能立刻知晓volatile bool 值的改变
                }
    
                System.out.println("Thread0 - 结束");
            }
        }
    }
    
    • 输出结果
    main - 结束
    Thread0 - 结束
    

    相关文章

      网友评论

        本文标题:Java中volatile的使用及说明

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