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,創(chuàng)建兩個線程,Task任務類的工作是判斷如果i==0的話,就講i=123,但是我主方法變量i的時候,i的值還是0,并沒有被線程修改啊。不是說volatile修飾的變量是都是可見的嘛?
為什么我的volatile關鍵字沒有體現(xiàn)出變量的可見性?萬分感謝
梵蒂岡之花
2019-08-14 20:31:38