我试图在 run 方法中显示正在运行的线程的名称。这些线程是在固定的线程池中创建的:
ExecutorService e = Executors.newFixedThreadPool(size);
Java API 无法帮助我,我该怎么做?
此外,如果知道如何自定义池中这些线程的名称,那就太好了。
最佳答案
以下示例可以回答您的两个问题:
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
来救援!请注意,线程不需要具有唯一的名称。
关于java - 如何获取固定线程池中线程的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20575434/