Java线程池设置名称,看完必会

点击上方☝,轻松关注!及时获取有趣有料的技术文章本文讲一下Java线程池中创建 ThreadFactory 设置线程名称的三种方式。设置线程名称是很重要的,如果你没有设置过,说明你还“涩…

大家好,又见面了,我是全栈君。

点击上方☝,轻松关注!及时获取有趣有料的技术文章

Java线程池设置名称,看完必会

本文讲一下Java线程池中创建 ThreadFactory 设置线程名称的三种方式。设置线程名称是很重要的,如果你没有设置过,说明你还“涩世”不深,这里面的坑还不曾踩过,而我 在坑里进去然后坑里出来,被坑的那是一个相当的爽啊~

为了让不重蹈我的覆辙,为了未来不说起来都是满眼含着“热泪”,还是看下如何设置,顺便也设置设置。

Java线程池设置名称,看完必会

概览

第一种 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),springThreadFactory);
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),springThreadFactory);
exec.submit(() -> {
	logger.info("--记忆中的颜色是什么颜色---");
});

总结

最终本质都是 给 java.lang.Thread#name 设置名称,详情源码感兴趣的可以自行查看。

final Thread thread = new Thread();
thread.setName(name);

本文完~

推荐预阅读

推荐一款Java音频视频编码器,很赞~

2020年Java程序员20个超强练手项目

Java线程池设置名称,看完必会

一个技术人珍藏的武学秘籍Java线程池设置名称,看完必会

点亮在看Java线程池设置名称,看完必会

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120973.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • TLS/SSL 协议详解 (29) 国密SSL协议

    TLS/SSL 协议详解 (29) 国密SSL协议测试服务器:https://47.89.249.43:4433/(测试时,先将本机时间设置为2018年7月之前(我证书过期了),然后使用360国密浏览器访问。360国密浏览器会在TLS握手失败后才会发起GMSSL握手,所以访问较慢。出现访问不了的情况,请清除360国密浏览器所有缓存,重启浏览器后再访问)源码在https://github.com/mrpre/atls上可以获得…

  • JAVA重写和重载的区别「建议收藏」

    JAVA重写和重载的区别「建议收藏」问:Java重载与重写是什么?有什么区别?答:  重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个数和参数类型来决定具体使用哪个方法的多态性)。图1.Android…

  • navicat15激活码最新【在线注册码/序列号/破解码】

    navicat15激活码最新【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • cmd查看端口被占用并关闭「建议收藏」

    cmd查看端口被占用并关闭「建议收藏」1、netstat-nao|findstr”8000″2、tasklist|findstr”157468″3、taskkill/f/t/imCLodopPrint64.exe

  • Oracle Number 自动转Decimal问题修正「建议收藏」

    Oracle Number 自动转Decimal问题修正「建议收藏」spark加载Oracle表的Number字段,直接写入关系表会被转成decimal双精度类型解决方式:1.构建Jdbc会话publicclassJdbcOracleDialectextendsJdbcDialect{@OverridepublicbooleancanHandle(Stringurl){returnurl.startsWith(“jdbc:oracle”);}@Overrid…

  • mac版本idea激活码2021(最新序列号破解)

    mac版本idea激活码2021(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号