使用newCachedThreadPool时,如何获取当前线程数

时间:2010-04-17 08:18:10

标签: java multithreading

我想记录newCachedThreadPool调用创建的活动线程数。我似乎无法找到从哪里获得这个价值。

2 个答案:

答案 0 :(得分:3)

您可以将ThreadFactory传递给newCachedThreadPool 让它在创建新线程时实现一些日志记录,因为newCachedThreadPool重用了你不必担心线程结束的线程。

OR

将执行程序转换为ThreadPoolExecutor并调用其getPoolSize()方法

答案 1 :(得分:0)

我不确定您是否对存在的线程的数量感兴趣,或者您是否对活动的任务的数量感兴趣。如果您对这些任务感兴趣,那么您可以为已添加的每个任务存储Future。当您想知道有多少任务处于活动状态时,您只需计算回复Futurefalse的{​​{1}}个对象的数量。明显可以删除回复isDone的那些。