1

計算をしたいのですが、時間がかかりすぎた場合(たとえば10秒)、停止して現在の最良の結果を表示したいと思います。

Javaでそれを行う準備ができていますか? すべての関数で時間チェックを書きたくありません。

4

3 に答える 3

2

提案どおりに使用するTimerか、複数のスレッドに進みます。メイン プログラムで、計算を行う別のスレッドが開始されます。メイン スレッドはスリープ状態にThread.sleepなり、タイムアウト後に計算を終了します。

main thread +-------+---sleeping---termination----+
                    |                 |
another thread      +---calculation---+
于 2012-04-09T23:37:00.210 に答える
1

計算スレッドの開始時に開始できる別のスレッドを作成し、Timer.sleep(int) メソッドで 10 秒後にブール値を true に設定できます。次に、計算スレッドで、if(finished) break;

于 2012-04-10T00:24:38.833 に答える
-1

毎秒値をインクリメントし、10 秒で終了するループを持つ別のスレッドを用意します。

public class counter extends Thread, implements Runnable{
 public void run()
{
 for(int index=0; index<10; index++)//Waits ten seconds
{
this.sleep(1000);//ms
}
System.exit(0);//Closes the application
}

ただし、メイン スレッドは引き続き実行できます。シャットダウンをキャンセルするには、入力が時間内に受信された場合に true に設定される揮発性ブール値を持つことができると思います。

于 2012-04-09T23:36:17.330 に答える