0
我想在運行方法中顯示運行線程的名稱。這些線程在一個固定的線程池創建:如何獲得固定線程池中線程的名稱
ExecutorService e = Executors.newFixedThreadPool(size);
Java的API並不能幫助我,我該怎麼辦呢?
另外,知道如何自定義池中這些線程的名稱會很棒。
我想在運行方法中顯示運行線程的名稱。這些線程在一個固定的線程池創建:如何獲得固定線程池中線程的名稱
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
是來救援!請注意,線程不需要具有唯一的名稱。
Thread.currentThread()(一個靜態方法),然後線程實例上的Thread.getName()和Thread.setName()?它在線程類的API文檔中:http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html – reblace