在审查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