2017-05-04 107 views
0

我创建了一个值为5的线程池。将任务分配给5个线程之后,工作者应该等待创建线程,直到线程在线程池中获得空闲为止。那么,如何找到线程池中的任何线程都是免费的?如何检测ThreadPool中是否有空闲线程?

在此先感谢....

+0

[Javadocs页面]上有很多信息(https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html) – tar

+0

非常感谢,tar 。我已经看过它。但在看到Rahul Singh的回答和您的评论后,我了解了Javadocs页面。 –

回答

2
if (thread instanceof ThreadPoolExecutor) { 
    System.out.println(
     "Pool size is now " + 
     ((ThreadPoolExecutor) pool).getActiveCount() 
    ); 
} 

考虑到该ExecutorService的名称是线程,这为您提供的活动线程,现在你可以得到免费的线程。