傳遞給ThreadPoolExecutor/ScheduledThreadPoolExecutor的推薦corePoolSize是什麼?傳遞給ThreadPoolExecutor/ScheduledThreadPoolExecutor的推薦corePoolSize是什麼?
Runtime.getRuntime().availableProcessors()
? Runtime.getRuntime().availableProcessors() * 2
?
從一個角度來看,我希望CPU(所有內核)能夠100%利用,但儘可能少用線程,以便儘快完成並且不會有太多的處罰在上下文切換。
另一方面,一些線程可能無法一直利用CPU,如等待網絡。在這種情況下,我希望生成新線程並保持所有內核繁忙。
如果有暫時的CPU過度使用,我很好。比使用不足和任務未被處理更好。
那麼如何才能實現這種線程負載平衡呢?謝謝。
我想找到一種方法讓java動態地產生線程而不會導致性能問題。對於靜態解決方案,我可以設置一個數字。相關:http://stackoverflow.com/questions/1718465/optimal-number-of-threads-per-core –