我试图在run方法中显示正在运行的线程的名称。这些线程是在固定的线程池中创建的:
ExecutorService e = Executors.newFixedThreadPool(size);
Java API对我没有帮助,我该怎么做?
此外,知道如何自定义池中这些线程的名称会很棒。
答案 0 :(得分:2)
以下是回答两个问题的示例:
ExecutorService es = Executors.newFixedThreadPool(4, new ThreadFactory() {
private final AtomicInteger counter = new AtomicInteger(1);
@Override
public Thread newThread(Runnable r) {
return new Thread(r, "MyThread-" + counter.getAndIncrement());
}
});
es.submit(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
});
ThreadFactory
是为了救援!请注意,线程不需要具有唯一名称。