我正在尝试调试多线程代码中的性能问题,我想知道是否有办法打印出当前正在执行该方法的线程数。例如,假设我有以下内容:
ExecutorService executor;
for (Object data : myData) {
executor.execute(() -> concurrentMethod(data));
}
具体来说,我使用的是ThreadPoolExecutor,因此提交的作业如下:
count=0
答案 0 :(得分:1)
怎么样
static AtomicInteger currentNumberOfThreads = new AtomicInteger();
public void concurrentMethod(Object data) {
currentNumberOfThreads.incrementAndGet();
try {
// currentNumberOfThreads.gets()
} finally {
currentNumberOfThreads.decrementAndGet();
}
}