小白,请教各位大佬!为什么我的volatile关键字没有体现出变量的可见性?

publicclassTestVol{
publicvolatilestaticinti=0;
publicstaticvoidmain(String[]args)throwsInterruptedException{
System.out.println(TestVol.i);
Threadt1=newThread(newTask(TestVol.i));
Threadt2=newThread(newTask(TestVol.i));
t1.start();
t2.start();
System.out.println(TestVol.i);
Thread.sleep(12000);
System.out.println(TestVol.i);
}
}
代码就是这样很简单。类里面神声明一个变量i,创建两个线程,Task任务类的工作是判断如果i==0的话,就讲i=123,但是我主方法变量i的时候,i的值还是0,并没有被线程修改啊。不是说volatile修饰的变量是都是可见的嘛?
慕后森
浏览 248回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript