zoukankan      html  css  js  c++  java
  • 通过volatile实现多线程间共享变量的可见性

    package com.leetcode.multithreading.licm;
    
    /**
     * @description:
     *
     * 通过volatile实现多线程间共享变量的可见性
     *
     * @author: licm
     * @create: 2021-07-26 10:55
     **/
    public class VolatileTest {
        private volatile boolean flag = true;
    
        public boolean isFlag() {
            return flag;
        }
    
        public void setFlag(boolean flag) {
            this.flag = flag;
        }
    
        private static class ChangeFlag extends Thread {
    
            private VolatileTest volatileTest;
    
            public ChangeFlag(VolatileTest volatileTest) {
                this.volatileTest = volatileTest;
            }
    
            @Override
            public void run() {
                while (volatileTest.flag) {
                    System.out.println("flag是 true");
                }
                System.out.println("flag 已经变成了false");
            }
        }
    
        public static void main(String[] args) throws InterruptedException {
            VolatileTest volatileTest = new VolatileTest();
    
            ChangeFlag addCount = new ChangeFlag(volatileTest);
            addCount.start();
            Thread.sleep(50);
            volatileTest.setFlag(false);
            ChangeFlag addCount1 = new ChangeFlag(volatileTest);
            addCount1.start();
    
    
        }
    
    }
    
    
    不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!
  • 相关阅读:
    spring boot 配置时区差别
    概率期望
    Euler函数与Euler定理
    素数&筛法
    等差子序列
    8.19 T2
    8.19 T1
    量化交易
    挺进

  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15061092.html
Copyright © 2011-2022 走看看