使用ThreadPoolExecutor时无法设置最大池大小

时间:2016-09-13 12:16:09

标签: java multithreading scala

我在两个不同的机器上运行相同的代码,并使用这样的Java多线程技术:

val synchronousExecutor: ThreadPoolExecutor = {
  logger.info(s"max thread num is $threadNum")
  val executor = new ThreadPoolExecutor(threadNum, threadNum, 60L, TimeUnit.SECONDS, new SynchronousQueue[Runnable](), threadFactory)
  executor.allowCoreThreadTimeOut(true)
  logger.info(s"max thread num is ${executor.getMaximumPoolSize}")
  executor
}

两台计算机上的行为完全不同:当我在一台计算机中设置threadnum = 30时,线程池中的活动线程计数始终无法达到此数字,并且池大小始终为10.但另一台计算机显示不同的结果。

我想知道为什么会发生这种情况,我该怎么办才能增加游泳池的大小。

0 个答案:

没有答案