1.volatile 作用
volatile用于修饰java的变量,不能保证原子性,所以当多个线程去更新的时候,最终结果不准确
1.可见性
一个线程变量的修改对另外的线程是可见的,每个线程都有属于自己的内存,volatile修饰的变量 需要使用,直接去主内存中获取最新的值放到私有内存中,更改后,会同步到主内存中去
package com.pgf.juc.volatileT;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @Auther: pgf
* @Date: 2020/3/4 0004
* @Description: 轻量级同步手段,原子可见性
* @ToDo:
* @version: 1.0
*/
public class VolatileTest implements Runnable{
private static volatile boolean flag = true;
/*一个线程一直循环,除非检测到flag变为false*/
@Override
public void run() {
while(flag){
}
System.out.println(Thread.currentThread().getName()+"===flag is:"+flag);
}
public static void main(String[] args