Java ExecutorService的newFixedThreadPool()为什么我们需要固定数量的活动线程?
Java ExecutorService的newFixedThreadPool()为什么我们需要固定数量的活动线程?,java,multithreading,Java,Multithreading,ExecutorService.newFixedThreadPool()是否存在任何实时场景,在这些场景中,即使没有要处理的任务,我们也希望拥有一组固定的活动线程?实际上,拥有固定数量的线程总比每次必须处理任务时生成一个新线程要好 线程的创建和维护成本很高,如果不能在应用程序中创建足够数量的活动线程,最终可能会损害性能。固定线程池重用已经创建的线程,这消除了线程创建开销 当您保持固定数量的线程时,您可以更好地预测内存和CPU使用情况,至少IMHO是这样 当然,没有适合所有用例的配方,在选择最适合
ExecutorService.newFixedThreadPool()
是否存在任何实时场景,在这些场景中,即使没有要处理的任务,我们也希望拥有一组固定的活动线程?实际上,拥有固定数量的线程总比每次必须处理任务时生成一个新线程要好
线程的创建和维护成本很高,如果不能在应用程序中创建足够数量的活动线程,最终可能会损害性能。固定线程池重用已经创建的线程,这消除了线程创建开销
当您保持固定数量的线程时,您可以更好地预测内存和CPU使用情况,至少IMHO是这样
当然,没有适合所有用例的配方,在选择最适合您特定情况的范例之前,您应该进行严格的测试和测量。尝试不同的配置将使您更好地理解并找到最佳解决方案。实际上,拥有固定数量的线程总比每次必须处理任务时生成新线程要好 线程的创建和维护成本很高,如果不能在应用程序中创建足够数量的活动线程,最终可能会损害性能。固定线程池重用已经创建的线程,这消除了线程创建开销 当您保持固定数量的线程时,您可以更好地预测内存和CPU使用情况,至少IMHO是这样 当然,没有适合所有用例的配方,在选择最适合您特定情况的范例之前,您应该进行严格的测试和测量。尝试不同的配置将使您更好地理解并找到最佳解决方案