【发布时间】:2021-05-12 14:27:44
【问题描述】:
我有一个任务应该等待一个条件(OpenCms 启动)然后通知一些听众。 为此,我使用了 ExecutorService:
public void check(final ExecutorService executorService) {
executorService.submit(() -> {
waitForInitialization();
notifyListeners();
});
}
private void waitForInitialization() {
while (OpenCms.getRunLevel() < OpenCms.RUNLEVEL_4_SERVLET_ACCESS) {
try {
TimeUnit.SECONDS.sleep(10);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
问题是如何关闭这个执行器。我可以使用awaitTermination,但我应该提供一个我不确切知道的超时。它可能因一种环境而异。
【问题讨论】:
标签: java multithreading executorservice opencms