【发布时间】:2012-05-09 05:29:52
【问题描述】:
Java SE 6 文档中的 ThreadPoolExecutor 类具有以下method:
public int getActiveCount()
返回大概的线程数 正在积极执行任务。
这里近似和主动执行是什么意思?
如果在致电getActiveCount()
之前、期间和之后,是否有任何保证
- N 个线程已从池中分配用于任务执行,并且
- 这些 N 个线程中没有一个可用于进一步的任务分配,
getActiveCount()
返回的整数正好是N?
如果getActiveCount()
不提供此保证,是否有任何其他方式可以更准确地获取此信息?
之前的 SO 问题:
我查看了Thread Pool Executor Monitoring Requirement 和How to tell if there is an available thread in a thread pool in java,但他们没有回答我的问题。
【问题讨论】:
-
ThreadPoolExecutor
是否有任何特定的必要性,在这种情况下是否可以使用诸如Executors.newFixedThreadPool(N)
之类的工厂方法? -
@posdef,我需要一个有界任务队列。
newFixedThreadPool()
有可能吗? -
嗯,你得到的是一个执行器服务,它有一个你定义的大小的线程池。检查 javadocs 是否满足您的需求。我发现它们确实非常有用:)
标签: java monitoring threadpool