优化我的线程池

时间:2014-06-14 04:49:00

标签: java multithreading threadpool executorservice

我有一个应用程序,我使用Executors创建一个线程池。

现在,我知道我们可以在创建时创建一个包含n个线程的线程池。

但在我的情况下,我不希望修复池大小。我希望应用程序在池中创建更多线程(如果用户更多),并在用户较少时自动减小池大小。

请告诉我,如果我含糊不清,你需要更多信息来理解这一点。

干杯!!

2 个答案:

答案 0 :(得分:2)

您可能想要使用Executors.newCachedThreadPool()。线程是根据需要创建的,如果它们暂时不使用,它们将自行终止。

答案 1 :(得分:1)

通常,ExecutorService具有默认策略,可为新创建的线程提供各种调整参数的开箱即用值。

根据我对您的问题的理解,IMO可以使用setKeepAliveTime方法控制允许空闲线程在线程池中生存的时间。

有关详细信息,请参阅文档here

此外,this链接提供了很好的资源来阅读Java中可用的线程池和执行程序