Java线程池中三种方式创建 ThreadFactory 设置线程名称
大家好,又见面了,我是全栈君。
本文讲一下Java线程池中创建 ThreadFactory 设置线程名称的三种方式。设置线程名称是很重要的,如果你没有设置过,说明你还“涩世”不深,这里面的坑还不曾踩过,而我 在坑里进去然后坑里出来,被坑的那是一个相当的爽啊~
为了让不重蹈我的覆辙,为了未来不说起来都是满眼含着“热泪”,还是看下如何设置,顺便也设置设置。
文章目录
第一种 CustomizableThreadFactory
Spring 框架提供的
CustomizableThreadFactory
。
ThreadFactory springThreadFactory = new CustomizableThreadFactory("springThread-pool-");
ExecutorService exec = new ThreadPoolExecutor(1, 1,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(10),springThreadFactory);
exec.submit(() -> {
logger.info("--记忆中的颜色是什么颜色---");
});
第二种 ThreadFactoryBuilder
Google guava 工具类 提供的
ThreadFactoryBuilder
,使用链式方法创建。
ThreadFactory guavaThreadFactory = new ThreadFactoryBuilder().setNameFormat("retryClient-pool-").build();
ExecutorService exec = new ThreadPoolExecutor(1, 1,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(10),guavaThreadFactory );
exec.submit(() -> {
logger.info("--记忆中的颜色是什么颜色---");
});
第三种 BasicThreadFactory
Apache commons-lang3 提供的
BasicThreadFactory
.
ThreadFactory basicThreadFactory = new BasicThreadFactory.Builder()
.namingPattern("basicThreadFactory-").build();
ExecutorService exec = new ThreadPoolExecutor(1, 1,