Java线程池中三种方式创建 ThreadFactory 设置线程名称
2023-09-27 14:27:23 时间
本文讲一下Java线程池中创建 ThreadFactory 设置线程名称的三种方式。设置线程名称是很重要的,如果你没有设置过,说明你还“涩世”不深,这里面的坑还不曾踩过,而我 在坑里进去然后坑里出来,被坑的那是一个相当的爽啊~
为了让不重蹈我的覆辙,为了未来不说起来都是满眼含着“热泪”,还是看下如何设置,顺便也设置设置。
文章目录
第一种 CustomizableThreadFactory
第二种 ThreadFactoryBuilder
第三种 BasicThreadFactory
总结
第一种 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, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10),basicThreadFactory ); exec.submit(() -> { logger.info("--记忆中的颜色是什么颜色---"); });
总结
最终本质都是 给 java.lang.Thread#name 设置名称,详情源码感兴趣的可以自行查看。
final Thread thread = new Thread(); thread.setName(name);
本文完~
————————————————
版权声明:本文为CSDN博主「阿飞云」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010648555/article/details/106137206
相关文章
- java安全编码指南之:线程安全规则
- Java 线程的基本使用
- Java并发编程(08):Executor线程池框架
- java语音转文字
- 如何创建、启动 Java 线程?
- OpenJDK中java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException解决办法
- 并发编程--JAVA线程池实现讲解及使用示例
- 干货 | 教你如何监控 Java 线程池运行状态
- Java常用并发工具类
- 《Java程序员面试秘笈》—— 1.3 线程信息的获取和设置
- 《Java程序员面试秘笈》—— 1.12 线程组中不可控异常的处理
- 基于Java(SSM框架)+MySQL开发的销售管理系统【100010073】
- java线程中的interrupt,isInterrupt,interrupted方法
- Java Web 面试中关于Spring MVC必问题,不看血亏!
- Java学习-076-多线程09:线程礼让 Thread.yield()
- new Thread的弊端及Java四种线程池的使用
- java并发之线程同步(synchronized和锁机制)
- 浅析Java对集合进行操作时报java.util.ConcurrentModificationException并发修改异常问题:产生原因、单线程/多线程环境解决、CopyOnWriteArrayList线程安全的ArrayList、fail-fast快速失败机制防止多线程修改集合造成并发问题
- Java多线程之Join方法阻塞线程
- [Java Performance] JVM 线程调优
- JAVA内存模型和线程安全
- 从实际案例聊聊Java应用的GC优化--转
- Java线程同步与锁
- Java random 随机数种子
- Java 一起来复习下String类吧~~~
- Java 多线程介绍及线程创建