スレッドを正しく理解しているかどうかわからない場合、次の例で誰かが私が正しいか間違っているかを教えてもらえますか?
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の場合はtrue
いつでも何かを実行するオブザーバーを持っていることです。パラメータとして渡すIのすべてのコードが実際に終了する前に、trueに設定されているのではisFinished
ないかと思います。isFinished
Runnable
runメソッドは、渡したコードを別のスレッドに入れて、そのコードを非同期で実行することを想定していませんか?