Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ExecutorService的newFixedThreadPool()为什么我们需要固定数量的活动线程?_Java_Multithreading - Fatal编程技术网

Java ExecutorService的newFixedThreadPool()为什么我们需要固定数量的活动线程?

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

ExecutorService.newFixedThreadPool()
是否存在任何实时场景,在这些场景中,即使没有要处理的任务,我们也希望拥有一组固定的活动线程?

实际上,拥有固定数量的线程总比每次必须处理任务时生成一个新线程要好

线程的创建和维护成本很高,如果不能在应用程序中创建足够数量的活动线程,最终可能会损害性能。固定线程池重用已经创建的线程,这消除了线程创建开销

当您保持固定数量的线程时,您可以更好地预测内存和CPU使用情况,至少IMHO是这样


当然,没有适合所有用例的配方,在选择最适合您特定情况的范例之前,您应该进行严格的测试和测量。尝试不同的配置将使您更好地理解并找到最佳解决方案。

实际上,拥有固定数量的线程总比每次必须处理任务时生成新线程要好

线程的创建和维护成本很高,如果不能在应用程序中创建足够数量的活动线程,最终可能会损害性能。固定线程池重用已经创建的线程,这消除了线程创建开销

当您保持固定数量的线程时,您可以更好地预测内存和CPU使用情况,至少IMHO是这样

当然,没有适合所有用例的配方,在选择最适合您特定情况的范例之前,您应该进行严格的测试和测量。尝试不同的配置将使您更好地理解并找到最佳解决方案