网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

ThreadLocal和ThreadPoolExecutor如何同时使用

这篇文章主要介绍ThreadLocal和ThreadPoolExecutor如何同时使用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联建站网站设计,为客户量身定制各类网站建设业务,包括企业型、电子商务型、响应式网站开发、行业门户型等各类网站,实战经验丰富,成功案例众多。以客户利益为出发点,创新互联建站网站制作为客户规划、按需网站设计符合企业需求、带有营销价值的网络建站方案认真对待每一个客户,我们不用口头的语言来吹擂我们的优秀,千余家的成功案例见证着我们的成长。

ThreadLocal会为每个线程保存一份成员变量的副本,而ThreadPoolExecutor是一些线程不断执行各种任务(线程复用)。比如,你让具有3个线程的ThreadPoolExecutor执行13个任务,那么有一个线程会执行5个任务,另外两个线程执行4个任务。那么,每个线程执行的这几个(5个或4个)任务,会共享ThreadLocal的数据备份。并不是每个任务有一个数据副本。

来段代码说明

TestNum类中定义sewNum这样一个ThreadLocal量,每个线程访问这个类时,都会有一个seqNum的副本。

ThreadLocal和ThreadPoolExecutor如何同时使用

定义一个任务,打印ThreadLocal变量值

ThreadLocal和ThreadPoolExecutor如何同时使用

在一个具有3个线程的线程池中,执行13个任务

ThreadLocal和ThreadPoolExecutor如何同时使用

输出结果,可以看到每个线程,都有一份ThreadLocal的数据备份。但是这些任务并没有独立的数据副本(同一线程执行的任务,共享同一个副本数据)

ThreadLocal和ThreadPoolExecutor如何同时使用

这就是文章开头提到的分库BUG产生的原因。程序员产生了每个任务都有一个数据副本的错觉。

以上是“ThreadLocal和ThreadPoolExecutor如何同时使用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


本文标题:ThreadLocal和ThreadPoolExecutor如何同时使用
本文地址:http://bjjierui.cn/article/jpsphh.html

其他资讯