【发布时间】:2017-04-10 06:09:43
【问题描述】:
假设我有以下代码,并且 makePool 可以被多个线程调用。我使用ThreadFactoryBuilder 来确保线程具有唯一的名称。
private final ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat(
"MyBusinessClass-%d").build();
public ExecutorService makePool() {
return Executors.newFixedThreadPool(1, threadFactory);
}
或者我是否必须假设池不是线程安全的,并且必须执行以下操作:
private static final AtomicLong poolCount = new AtomicLong(0L);
public ExecutorService makePool() {
private final ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat(
"MyBusinessClass- " + poolCount.incrementAndGet() + "-%d").build();
return Executors.newFixedThreadPool(1, threadFactory);
}
【问题讨论】:
标签: java thread-safety threadpool guava