zoukankan      html  css  js  c++  java
  • Volatile关键字以及线程的内存可见性问题

    一、Volatile关键字

    作用:

    当多个线程进行操作共享数据时,可以保证内存中的数据可见,即为一个线程对数据的修改对另外一个线程来说是可见的。相较于 synchronized 是一种较为轻量级的同步策略。但不保证互斥可原子性。

    二、简单使用

    package com.duchong.juc;
    
    public class TestVolatile {
    
        public static void main(String[] args) {
            ThreadDemo td = new ThreadDemo();
            new Thread(td).start();
    
            while(true){
                if(td.getFlag()){
                    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=" + getFlag());
    
        }
    
        public boolean getFlag() {
            return flag;
        }
    
    
    }
  • 相关阅读:
    闭关
    我现在很好
    asp.net看不明白怎么办?
    中秋节
    今天很开心
    偶尔伤感
    现在是10月4日了!
    2006的最后一天
    十多天都不写博客了
    呵呵  最近很忙  但是很充实!
  • 原文地址:https://www.cnblogs.com/geekdc/p/10216452.html
Copyright © 2011-2022 走看看