我正在尝试以下方法:
例如,我有一些代码块,执行时间超过30秒,但是如果需要超过30秒,我想停止它。
所以我想在某个代码块上设置超时,但是循环应该在其他迭代中执行。
到目前为止,这是我的代码:
For (i=0;i<3;i++)
{
private void gracefulShutDown(ExecutorService executor)
{
try
{
executor.shutdown();
executor.awaitTermination(30, TimeUnit.SECONDS); // some code here takes more than 30 sencons to execute
}
catch (InterruptedException e)
{
log.error("Termination interrupted", e);
}
finally
{
if (!executor.isTerminated())
{
log.warn("Killing non-finished tasks");
}
executor.shutdownNow();
}
}
}