Thread thread = new Thread("New Thread")
{
public void run(){
//instructions A,B and C
}
};
thread.start();
//instructions D, E
命令A、B、Cの終了後にDとEが実行されないのはなぜですか。命令A、B、Cの終了後にDとEを実行するにはどうすればよいですか。
Thread thread = new Thread("New Thread")
{
public void run(){
//instructions A,B and C
}
};
thread.start();
//instructions D, E
命令A、B、Cの終了後にDとEが実行されないのはなぜですか。命令A、B、Cの終了後にDとEを実行するにはどうすればよいですか。
命令A、B、Cの終了後にDとEを実行する方法
ええと、新しいスレッドでA、B、Cを実行しませんか?新しいスレッドを開始することの全体的なポイントは、新しいスレッドのメソッドが実行されている間、現在のスレッドが他のコードを実行できることです。run()
DとEの前に電話をかけることができthread.join()
ます...しかし、なぜあなたはそれをしたいのですか?
コードをA、B、C、D、Eの順序で実行するだけの場合は、現在のスレッドですべてを実行します。
1. A、B、およびCの完了後にDおよびEを実行する場合は、を使用する必要があります
join()
。
2.スレッドでjoin()が呼び出されると、そのスレッドが終了するのを待って(つまり、run()メソッドを終了する)、join()の後に行を実行します。
3.CountDownLatch from java.util.concurrent
パッケージを使用する方が良いです。
スレッドは並行して実行されます(少なくとも大まかに)。したがって、スレッドが命令A、B、およびCを開始するときは、命令DおよびEと並行して実行されます。それが望ましくない場合は、そもそも別のスレッドを使用しないでください(少なくともこれが最も簡単なオプションです)。
後で実行する場合は、スレッドを使用してA、B、およびCを実行しないでください。
特定の注文が必要な場合、なぜスレッドを使用しているのですか?