1. 背景
最近看到leader写的代码,在项目中开启了大量的子线程的子线程,然后我在本地debug的时候,idea切换的时候找不到挂起的线程,由此认识到线程池取名字的重要性
2. 实战
public class TestFixedThreadPool {
/**
* 默认是这个样子的:pool-1-thread-3
* 设置了以后长这个样子pre-1-3
*/
private static final ExecutorService executorService = Executors.newFixedThreadPool(3, new DefaultThreadFactory("pre"));
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
int finalI = i;
executorService.execute(new ExtTask(i));
}
}
static class ExtTask implements Runnable{
int finalI;
ExtTask(int finalI){
finalI = finalI;
}
@Override
public void run() {
String name = Thread.currentThread().getName();
System.out.println(name + ":" + finalI );
}
}
}