/**
* volatile關鍵字具備線程間可見性
* jdk1.5之後,線程執行之前,會拷貝一份主線程之中的變量副本,用於本線程
*
*/
public class SonThread extends Thread{
//多個線程中isRunning保持一致可見性
private volatile boolean isRunning = true;
private void setRunning(boolean isRunning){
this.isRunning = isRunning;
}
public void run(){
System.out.println("進入run方法..");
int i = 0;
while(isRunning == true){
//..
}
System.out.println("線程停止");
}
public static void main(String[] args) throws InterruptedException {
SonThread rt = new SonThread();
rt.start();
Thread.sleep(1000);
rt.setRunning(false);//修改主線程中的變量isRunning=false
System.out.println("isRunning的值已經被設置了false");
}
}
多線程間一致可見性volatile變量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.