Java多线程中的ThreadLocal,可继承,可修改。

package test;import java.util.Date;public class InheritableThreadLocalExt  extends InheritableThreadLocal<Object>{@Overrideprotected Object initialValue() {return new Date().getTime();}@Overrideprotected Object childValue(Object parentValue) {return parentValue + " insert at child thread.";}}
package test;public class Tools  {public static InheritableThreadLocalExt tl = new InheritableThreadLocalExt();}
package test;public class ThreadA extends Thread {@Overridepublic void run() {try {for (int i = 0; i < 10; i++) {System.out.println("from ThreadA get value=" + Tools.tl.get());Thread.sleep(100);}} catch (InterruptedException e) {e.printStackTrace();}}}
package test;public class Run {public static void main(String[] args) {try {for (int i = 0; i < 10; i++) {System.out.println("from Main get value=" + Tools.tl.get());Thread.sleep(100);}Thread.sleep(5000L);ThreadA a = new ThreadA();a.start();} catch (InterruptedException e) {e.printStackTrace();}}}

输出:

from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from Main get value=1514531585175
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.
from ThreadA get value=1514531585175 insert at child thread.

Java多线程中的ThreadLocal,可继承,可修改相关推荐

  1. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

  2. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  3. Java多线程中使用ReentrantLock、synchronized加锁 简单举例

    Java多线程中使用ReentrantLock.synchronized加锁 简单举例 public class Demo {final static Lock lock = new Reentran ...

  4. java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?

    转载自 java多线程中的死锁.活锁.饥饿.无锁都是什么鬼? 死锁.活锁.饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了. 死锁 死锁 ...

  5. java 多线程的单例模式,Java多线程中的单例模式两种实现方式

    Java多线程中的单例模式 一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { priv ...

  6. Java多线程中static变量的使用

    Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果? Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果?仅仅是多耗资源还是会引发异 ...

  7. Java多线程中的Runnable和Thread

    摘要: 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的r ...

  8. 【Java之多线程(二)】(***重要***)Java多线程中常见方法的区别,如object.wait()和Thread.sleep()的区别等

    1.Java中Thread和Runnable的区别??? 区别: 在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处: 避免点 ...

  9. java多线程中的异常处理

    2019独角兽企业重金招聘Python工程师标准>>> 在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的che ...

最新文章

  1. Azure AI的又一里程碑,Neural TTS新模型呈现真人般情感饱满的AI语音
  2. 全网最简单的dubbo源码调试,建议点赞收藏!!!
  3. java并发编程基础—生命周期与线程控制
  4. SpringMVC简单项目配置
  5. cactiez mysql_cactiez使用mysql数据库出现以下报错:“[ERROR] /usr/sbin/mysqld”
  6. 【测试】接口测试介绍
  7. 简记Ubuntu下载 Android源码
  8. h2database源码浅析:TransactionMap、MVMap、MVStore
  9. c#在当前窗体的按钮事件调用另一封…
  10. pytorch ResNet结构代码实现
  11. 计算机桌面变色怎么办,电脑屏幕变色了怎么办
  12. 欺骗的艺术——你被社工了吗?
  13. android刷机工具mac版,苹果一键刷安卓!OS X版CM刷机工具发布
  14. 新城易居程伟健:民宿集群,正在走向产业标准化的趋势!
  15. 小蓝本 第一本《因式分解技巧》 第一章 提公因式 笔记(第一天)
  16. Unity引擎制作仿《文明》游戏
  17. Mac OS 中Texstudio 无法找到 .sty文件
  18. c语言功率算电量,电功率你理解透了吗?怎么算功率因数?1度电是多少?
  19. 小米java暑期实习面经-普通二本,研究生985机会大吗?
  20. Pytorch基础入门

热门文章

  1. Spring OXM-XStream流化对象
  2. Spring OXM- 漫谈XML解析技术
  3. 二、八、十、十六进制及小数间的转换
  4. spring boot jpa级联保存
  5. IDEA REST Client IDEA自带的接口调试工具
  6. MATLAB基本语法 初学者
  7. oracle9i解密rewrap,ORACLE9I+DATAGUARD+RMAN
  8. Vue学习01-v-on事件修饰符
  9. 数据结构实验之栈与队列八:栈的基本操作
  10. JAVA 判断其是否为合法标识符