最佳答案
我有一个产生线程(约5-150)的程序,它执行一系列任务。最初,我使用 FixedThreadPool
是因为 这个类似的问题表明它们更适合于较长的任务,并且由于我对多线程的知识非常有限,我考虑了线程的平均寿命(几分钟)“ 长命百岁”。
但是,我最近增加了产生额外线程的功能,这样做使我超出了设置的线程限制。在这种情况下,最好是猜测并增加我可以允许的线程数,还是切换到 CachedThreadPool
,这样我就没有浪费的线程了?
初步试验它们,没有 看起来有什么不同,所以我倾向于使用 CachedThreadPool
只是为了避免浪费。但是,线程的生命周期是否意味着我应该选择一个 FixedThreadPool
,只处理未使用的线程?这个问题让这些额外的线程看起来没有被浪费,但是我希望得到澄清。