匿名内部类
private final Executor executor;{ThreadFactory threadFactory = new ThreadFactory() {@Overridepublic Thread newThread(Runnable r) {Thread t = new Thread(r);t.setDaemon(true);return t;}};executor = Executors.newFixedThreadPool(shops.size(), threadFactory);
}
private final Executor executor = Executors.newFixedThreadPool(shops.size(), new ThreadFactory() {@Overridepublic Thread newThread(Runnable r) {Thread t = new Thread(r);t.setDaemon(true);return t;}
});
lambda 表达式
private final Executor executor = Executors.newFixedThreadPool(shops.size(), r -> {Thread t = new Thread(r);t.setDaemon(true);return t;
});
ThreadFactoryBuilder
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;import java.util.concurrent.ThreadFactory;@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class ExecuterThreadFactoryBuilder {public static ThreadFactory build() {return new ThreadFactoryBuilder().setDaemon(true).setNameFormat("thread-%d").build();}public static ThreadFactory build(String nameFormat) {return new ThreadFactoryBuilder().setDaemon(true).setNameFormat(nameFormat).build();}
}private final Executor executor = Executors.newFixedThreadPool(shops.size(), ExecuterThreadFactoryBuilder.build());