【发布时间】:2013-07-31 05:04:16
【问题描述】:
我有一个程序可以生成线程 (~5-150) 来执行一堆任务。最初,我使用FixedThreadPool,因为this similar question 建议它们更适合寿命更长的任务,并且由于我对多线程的了解非常有限,我认为线程的平均寿命(几分钟)“寿命长 em>”。
但是,我最近添加了生成额外线程的功能,这样做使我超出了我设置的线程限制。在这种情况下,最好是猜测并增加我可以允许的线程数还是切换到CachedThreadPool 这样我就不会浪费线程了?
初步试用它们,似乎没有区别,所以我倾向于使用CachedThreadPool,以避免浪费。但是,线程的寿命是否意味着我应该选择FixedThreadPool 并只处理未使用的线程? This question 让人觉得这些额外的线程并没有被浪费,但我希望能得到澄清。
【问题讨论】:
标签: java multithreading threadpool executorservice java.util.concurrent