ThreadLocal的轻纱拂去,到底是个什么鬼?

你,你,还有你用过threadLocal吗?答案显而易见。但是却被常常提起的一个东西。

如下是API种的解释:
该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。

嗯,ThreadLocal即是线程的局部变量副本,每个线程持有自己的副本。随着线程的生命周期结束,自动销毁。

package test.com;public class TestImpl implements Test{@Overridepublic void init(Integer i) {// TODO Auto-generated method stubThreadLocal<Integer> tl = Main3.local;Integer init = tl.get();//未被初始化的话,初始化一个线程变量if(init==null) {System.out.println("initing…");tl.set(i);}}@Overridepublic void execute() {// TODO Auto-generated method stubSystem.out.println(Main3.local.get());}}package test.com;public class Main3 {public static ThreadLocal<Integer> local = new ThreadLocal<>();public static void main(String[] args) {TestImpl impl = new TestImpl();impl.execute();impl.init(2);impl.execute();System.out.println("--------------------------");TestImpl impl2 = new TestImpl();impl2.execute();impl2.init(5);impl2.execute();impl.execute();System.out.println("-------------------------");Thread t = new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubTestImpl impl3 = new TestImpl();impl3.init(10);impl3.execute();}});t.start();try {t.join();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("-------------------------");impl.execute();impl2.execute();}
}//执行结果
null
initing…
2
--------------------------
2
2
2
-------------------------
initing…
10
-------------------------
2
2分析:从程序的执行结果可以看出,threadLoacl只会在线程中生成变量副本,被该线程持有,
而和改线程中初始化多少个对象无关。

大家可能会说自己也可以缓存了什么的,但是有一点这个副本随着线程死亡而销毁。无需管理。

拂去ThreadLocal的轻纱相关推荐

  1. 拂去课本与心灵中的一缕灰尘

    更是一种必然的精美礼品 今天的更是一种必然的精美礼品,呈现出勃勃生机,这是小小小小明,第二局开始,拂去课本与心灵中的一缕灰尘,我可不敢轻敌了,一踏上凤凰山,有的只是一份宁静,绿树长得郁郁葱葱,红花. ...

  2. 拂去那份浮躁,心中独留静谧

    2016-06-03 10:19:54 忙忙碌碌的生活 熙熙攘攘的城市 就这样一天天的过着 就这样烦躁一天天的累积 在寻梦的过程中 路边的风景你可曾欣赏 身边的朋友你可曾善待 耳边亲人的唠叨你可曾细细 ...

  3. 用优雅拂去岁月的轻尘

    在一场雪的曼舞中淡如云烟,然后又轻轻地摇曳一场月光如水的相逢.栖身于世风百态却能静守优雅,将心开成一朵素雅的莲,面对周而复始的生活的洗礼独享清欢,经年的流云被温进一盏茶香,在静寂时独享.心中有花开,幸 ...

  4. 服务器系统启用ntp拂去,服务器搭建四——NTP服务器搭建

    1.测试坏境 虚拟主机中安装的Centos 6.9 安装的软件NTP 2.NTP原理 NTP(network time protocol 网络时间协议)用于同步计算机和网络设备的内部的时间一种协议. ...

  5. 拂去风尘,回家的风景最美

    种深情,那就是对故乡的眷恋.走遍千山万水,回家的风景最美;尝尽人间百味,回家的感觉最暖. --题记 时光如水,日月如梭.转眼,年带着岁月的味道,姗姗而来.每逢佳节倍思亲,春节象征着团圆,象征着亲情的凝 ...

  6. 真正的自由是节制欲望自律简朴地去生活

    卢梭说:"人生而自由,却无往不在枷锁中."自由无价,但人总是不免困于世俗.困于心.困于情,有执着和偏见,更有痛苦.徘徊与挣扎.每个人都在寻找自由的出口,期望抵达心灵的港湾. 生命的 ...

  7. 千年古都西安 一座城市的辉煌与梦想

    上篇尊严与骄傲 中国西部,有一片黄土地,在这里曾经生活过一个令人敬仰的人物,他就是华夏民族的人文初祖---黄帝:在这里流淌着孕育东方人类文明的河流---黄河,华夏儿女称之为母亲河. 西安,就位于这片黄 ...

  8. 达芬奇密码 第七十四章

    达芬奇密码 第七十四章[@more@] 第七十四章 "你怎么不说话呢?"兰登注视着"猎鹰者"号机舱对面的索菲说. "太累了.还有这首诗,我怎么也看不明 ...

  9. 毕业后五年之内将决定你的一生

    大家千万不要错过这篇文章,毕业2年多了,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!看完之后有种" ...

最新文章

  1. 动态调频DVFS_转
  2. 华科研究生复试机试题代码堆积供以后参考
  3. 前端DevOps之PageSpeed Insights
  4. 编写函数,模拟内置函数 sorted()。
  5. Cisco无线AP上联口为trunk时无法注册故障处理
  6. 如何使用Python处理丢失的数据
  7. 漫步数理统计二十八——混合分布
  8. [渝粤教育] 西南科技大学 机床电气控制技术 在线考试复习资料
  9. c数据库读写分离和负载均衡策略
  10. 计算机专业期末试卷分析,计算机期末试卷分析
  11. GetX概览 — Flutter 开发的百宝箱
  12. Autodesk ReCap-现实捕获技术
  13. python3爬虫讲座ppt+demo
  14. 冠希老师看了会流泪,分布式存储爱我你怕了吗?
  15. PS教程:--虚线教程大全
  16. 微信、支付宝支付绑定多个商户号
  17. 为自动驾驶技术服务的基础道路设施
  18. 华为AI计算机,华为在人工智能行业的发展
  19. perl c语言,perl简介(适合对c语言有点认识的读者)_perl教程
  20. 灰度图像的彩色复原方法 ——以人脸着色为例

热门文章

  1. 五使用计算机上数学课英文,数学课用英语怎么说
  2. python 中文乱码 \u5b66\u90a6\u5ba2\u6237
  3. 当年做国际医学生实习的一点遗憾
  4. Windows 注册和取消注册一个dll或者ocx
  5. Linux 压缩文件和文件打包。
  6. 弘辽科技:拼多多关键词排名有什么用?有什么规则?
  7. 控制儿童在什么时段使用计算机,win10系统设置控制孩子用电脑的时间的图文步骤...
  8. bom成本分析模型_用BOM表算成本的大致思路是什么?
  9. web开发权威,一个合格的初级前端工程师需要掌握的模块笔记
  10. 高级linux内核软件工程师