私は別のスレッドからいくつかのコードを実行し、一定の時間が経過した後にタイムアウトさせたいとします。また、他のコードを定期的に実行できるようにしたい(つまり、出力を更新するなど)。スレッドを開始できませんでしたか?
これは私がそれをやっているか、本質的である:、私の質問がある
Thread operation = new Thread() { ... };
operation.start();
// Check if Thread is still alive every 100ms
for (int i = 0; i < timeout/100; i++) {
somethingToDoWhileWaiting(...);
if (!operation.isAlive()) {
break; // Thread is dead so we can end early
}
Thread.sleep(100);
}
if (operation.isAlive()) {
operation.interrupt(); // timed out
}
スレッドは(例外のいくつかの並べ替えをスローせず)を起動、またはそれが持っていないかもしれないということができないことをどのような方法があります私はそれが生きていることをチェックしたい時までに始まった?
私は
operation.start()
を呼び出し、エラーがスローされません:のように、という可能性があります。
は私がループに入ると、それは
生きている場合、それは(それがまだ開始されていないか、舞台裏でエラーがあっただいずれかのため)ではありません確認してください?そのショート
、スレッドが終了したことを確認する良い方法がある(または、それが正しく起動だということは - 私はそれが生きていたまでループを考えたが、私はそれについて同じ悩みを持っていますか)?
JDKの将来のAPIをチェックアウトする必要があります。 –