zoukankan      html  css  js  c++  java
  • GUC-1 volatile

    /*
     * 一、volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见。
     *                       相较于 synchronized 是一种较为轻量级的同步策略。
     * 
     * 注意:
     * 1. volatile 不具备“互斥性”
     * 2. volatile 不能保证变量的“原子性”
     */
    public class TestVolatile {
        
        public static void main(String[] args) {
            ThreadDemo td = new ThreadDemo();
            new Thread(td).start();
            
            while(true){
                if(td.isFlag()){
                    System.out.println("------------------");
                    break;
                }
            }
            
        }
    
    }
    
    class ThreadDemo implements Runnable {
    
        private volatile boolean flag = false;
    
        @Override
        public void run() {
            
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
            }
    
            flag = true;
            
            System.out.println("flag=" + isFlag());
    
        }
    
        public boolean isFlag() {
            return flag;
        }
    
        public void setFlag(boolean flag) {
            this.flag = flag;
        }
    
    }
  • 相关阅读:
    os模块
    函数练习
    集合 去重
    作业二:购物车程序
    作业一: 三级菜单
    字典练习
    字典
    切片
    冒泡练习
    判断整型数据奇偶数
  • 原文地址:https://www.cnblogs.com/surge/p/10476214.html
Copyright © 2011-2022 走看看