我已经在很多地方读过,线程池减少了线程创建开销,从而提高了性能。但是一旦线程完成执行其run方法,它就会进入Dead / Terminated状态,这意味着它可以重新启动。
那么,线程池如何处理线程的释放?它是否真的在某种程度上支持服务于下一个任务,或者在每次提交任务时在内部创建新线程?
答案 0 :(得分:1)
线程池内部有一个列表,它是线程的占位符,当有需求时使用它们,并在完成执行时将它们添加到此列表中,或者当一个终止并通过增长来维护它们时创建一个新列表根据您是否要求缓存或修复线程池来编号或减少。
答案 1 :(得分:0)
固定大小的线程池保留线程直到关闭。
默认情况下,缓存线程池将线程保持60秒。