不确定我是否正确理解线程,有人可以告诉我在以下示例中我是对还是错:
class Task {
String taskName;
private Thread thread;
boolean isFinished;
public Task(String name){
taskName = name;
}
public void createTask(final Runnable r) {
thread = new Thread(r){
public void run(){
if(r != null) {
r.run();
isFinished = true;
}
}
};
thread.start();
}
}
我在我的应用程序中实际做的是我将 设置isFinished
为true
,并有一个观察者,只要它isFinished
为真,就会做一些事情。恐怕在我作为参数传递isFinished
的所有代码实际终止之前设置为true 。Runnable
运行方法不是假设将我传递的代码放在单独的线程中并异步运行该代码吗?