2019-03-29 15:42:46 1511浏览
今天扣丁学堂Java培训老师给大家介绍一下关于Java中的关键字volatile的详细介绍,首先volatile关键字经常用来修饰变量。不过,volatile本身很容易被误用。在介绍volatile关键字原理前,我们首先要了解JVM运行时的内存分配逻辑。
public class VolatileTest implements Runnable{
//volatile
private static boolean flag = false;
@Override
public void run() {
while (!flag){
System.out.println(Thread.currentThread().getName() +"执行中");
}
System.out.println(Thread.currentThread().getName() +"执行完毕");
}
//main线程
public static void main(String[] args) throws InterruptedException {
new Thread(new VolatileTest(), "支线程Volatile").start();
Thread.sleep(1000);
flag = true;
}
}
private volatile int i; i++;i++这个操作涉及到获取值,自增和赋值3部分。无法直接完成。上面想要以volatile来实现原子性的写法是错误的。
int a = 4; int b = 5; int c = a + b;
//线程1:
context = loadContext();
inited = true;
//线程2:
while(!inited ){
}
doSomething(context);
【关注微信公众号获取更多学习资料】 【扫码进入Python全栈开发免费公开课】