在審查this question我注意到這個代碼:這段代碼爲什麼會失敗?
class MyThread extends Thread {
private boolean stop = false;
public void run() {
while(!stop) {
doSomeWork();
}
}
public void setStop() {
this.stop = true;
}
}
但是我不明白爲什麼會這樣失敗。其他線程是否無法訪問「實際」停止變量?
如何調用'setStop()'?來自MyThread的相同實例還是不同? – 2013-05-02 19:18:50
我不知道,不幸的是這是一個抽象的例子,從我鏈接到 – 2013-05-02 19:25:25
的問題setStop會從不同的線程調用。所有運行方法必須做的就是返回,它不需要標誌。 – 2013-05-02 19:53:17