如何获取执行当前方法的线程数?

时间:2017-10-09 14:53:00

标签: java multithreading concurrency

我正在尝试调试多线程代码中的性能问题,我想知道是否有办法打印出当前正在执行该方法的线程数。例如,假设我有以下内容:

ExecutorService executor;
for (Object data : myData) {
    executor.execute(() -> concurrentMethod(data));
}

具体来说,我使用的是ThreadPoolExecutor,因此提交的作业如下:

count=0

1 个答案:

答案 0 :(得分:1)

怎么样

static AtomicInteger currentNumberOfThreads = new AtomicInteger();
public void concurrentMethod(Object data) {
  currentNumberOfThreads.incrementAndGet();
  try {
    // currentNumberOfThreads.gets() 
  } finally {
    currentNumberOfThreads.decrementAndGet();
  }
}