volatile这一篇就够了

volatile这一篇就够了

下文笔者将详细介绍volatile这一篇文章,将使你真真的了解到volatile关键字的用法,如下所示:

volatile关键字 的功能:

我们都知道volatile关键字有两个功能:

     1.保证变量的内存可见性

      2.禁止指令重排序

可见性,例:

/**
 * 变量的内存可见性例子
 *
 * @author java265.com
 */
public class VolatileExample {
 
    /**
     * main 方法作为一个主线程
     */
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        // 开启线程
        myThread.start();
 
        // 主线程执行
        for (; ; ) {
            if (myThread.isFlag()) {
                System.out.println("主线程访问到 flag 变量");
            }
        }
    }
 
}
 
/**
 * 子线程类
 */
class MyThread extends Thread {
 
    private boolean flag = false;
 
    @Override
    public void run() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // 修改变量值
        flag = true;
        System.out.println("flag = " + flag);
    }
 
    public boolean isFlag() {
        return flag;
    }
 
    public void setFlag(boolean flag) {
        this.flag = flag;
    }
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » volatile这一篇就够了