ThreadPoolExecutor未完全加载

时间:2016-06-26 23:42:44

标签: java multithreading executorservice

我对java.util.concurrent有一些经验,但我不知道如何调试这个问题。

我有一个最多50个线程的线程池,我有一个500的执行队列,并且循环一个提交作业到该线程池,以一种方式,当一个作业完成后,它回到队列再次被执行。我有一个循环1000个作业要执行,所以队列总是完全填满。

我用它来实例化线程池。

new ThreadPoolExecutor(50, 
    50,
    0L, 
    TimeUnit.MILLISECONDS,
    new LinkedBlockingQueue<Runnable>(500),
    Executors.defaultThreadFactory())

问题是执行中总是有大约30个线程,而不是我期望的50个。

为什么?

韩国社交协会

0 个答案:

没有答案