我初始化了一個帶有N個線程的exectuor服務。 N線程完成後,我想等待一段時間,然後重新使用N線程的新實例的執行程序。我該怎麼做呢?等待執行程序服務中的線程完成
這裏是我使用的是失敗的示例代碼:
int NumberOfThreads=Integer.parseInt(PropertyHandler.getProperty("numberOfThreads"));
ExecutorService executor = Executors.newFixedThreadPool(NumberOfThreads);
log.info("Executor class has been initialized");
while (true) {
jobStack = MrMestri.buildJobs();
log.info("Creating a job stack of the search urls");
if (jobStack.isEmpty())
{
Thread.sleep(10000);
}
else {
int jobToken = 0;
while (jobStack.size() > 0) {
jobToken++;
MrRunnable worker = new MrRunnable(jobStack.pop());
executor.execute(worker);
if (jobToken% Integer.parseInt(PropertyHandler.getProperty("totalTrends")) == 0) {
log.info("All jobs for the clock cycle complete , waiting for next clock cycle to start. Number of jobs completed " + jobToken);
executor.shutdown();
Thread.sleep(milliseconds);
}
現在,我使用執行關機,沒有遺囑執行人執行我的線程。我的線程實現可運行。
任何快速回復將有很大的幫助。謝謝。
也許executor.awaitTermination?當你使用executor.shutdown()時,使用 –
等待終止。或至少看起來像什麼時候或什麼時候超時。我不知道什麼時候可以在那裏設置,因爲我的一些迴應可能需要時間。所以我不認爲我想要走這條路。 –