特定の時間制限内に終了しなかった場合に生成プロセス全体を停止したい場合は、すべてのループをスレッドに入れ、スレッドを特定の時間実行させ、終了していない場合は終了させることができます。これを行う方法は次のとおりです。
Thread generationThread = new Thread(){
public void run(){
// All your loops
// You can check for isInterrupted and simply return to terminate the process
if(isInterrupted()){
return;
}
}
}
generationThread.start();
generationThread.join(MAX_TIME); // how long in ms this process is allowed to run
// Terminate the thread if it did not finish
if(generationThread.isAlive()){
generationThread.interrupt();
}
このコードは説明のみを目的としており、必要に応じて変更してください。