如何使用固定數量的線程處理可能數量巨大的列表元素?我使用的ExecutorService的解決方案:處理具有固定線程數的列表項目
ExecutorService threadPool =
Executors.newFixedThreadPool(threadsNumber);
for (String url : urlList) {
MyThread thread = new MyThread(url);
threadPool.execute(thread);
}
threadPool.shutdown();
threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
此代碼返回我正確的輸出,而不是在每個迭代上創建一個新的線程,我想重複之前創建一個線程數,並重新使用它們。我怎樣才能做到這一點?
沒有得到您的問題。我沒有看到任何區別,無論是在循環外部還是內部創建線程。你爲什麼認爲,這會有所作爲? – Ravi
在循環內創建線程取決於迭代列表中元素的數量。如果列表包含大量元素,則必須創建大量線程。我想通過在循環之前創建線程來避免它受到'urlList'中若干元素的影響。 – MoBi
它只會創建指定的線程數 – Ravi