Java 多线程学习笔记(十) InheritableThreadLocal的使用
来源:互联网 发布:机票数据 编辑:程序博客网 时间:2024/05/16 12:26
废话少说,上代码
package extthread;import tools.Tools;public class ThreadA extends Thread {@Overridepublic void run() {try {for (int i = 0; i < 10; i++) {System.out.println("在ThreadA线程中取值=" + Tools.tl.get());Thread.sleep(100);}} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
package ext;import java.util.Date;public class InheritableThreadLocalExt extends InheritableThreadLocal {@Overrideprotected Object initialValue() {return new Date().getTime();}}
package test;import tools.Tools;import extthread.ThreadA;public class Run {public static void main(String[] args) {try {for (int i = 0; i < 10; i++) {System.out.println(" 在Main线程中取值=" + Tools.tl.get());Thread.sleep(100);}Thread.sleep(5000);ThreadA a = new ThreadA();a.start();} catch (InterruptedException e) {e.printStackTrace();}}}
package tools;import ext.InheritableThreadLocalExt;public class Tools {public static InheritableThreadLocalExt tl = new InheritableThreadLocalExt();}
子线程可以从父线程中去值。值继承也可以在修改。见如下代码
package ext;import java.util.Date;public class InheritableThreadLocalExt extends InheritableThreadLocal {@Overrideprotected Object initialValue() {return new Date().getTime();}@Overrideprotected Object childValue(Object parentValue) {return parentValue + " 我在子线程加的~!";}}
运行结果:
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在Main线程中取值=1467603826045
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
在ThreadA线程中取值=1467603826045 我在子线程加的~!
- Java 多线程学习笔记(十) InheritableThreadLocal的使用
- Java多线程之ThreadLocal和InheritableThreadLocal的使用
- Java多线程值继承(InheritableThreadLocal )
- Java多线程之----InheritableThreadLocal
- Java多线程之通过管道线程间通信(字节流、字符流),类ThreadLocal与类InheritableThreadLocal的使用
- Java多线程编程3--线程间通信--类ThreadLocal与类InheritableThreadLocal的使用
- Java 多线程:InheritableThreadLocal 实现原理
- Java 多线程:InheritableThreadLocal 实现原理
- Java 多线程:InheritableThreadLocal 实现原理
- InheritableThreadLocal的使用问题
- 类InheritableThreadLocal的使用
- ThreadLocal与InheritableThreadLocal学习笔记
- Java 多线程8:InheritableThreadLocal 实现原理
- ThreadLocal和InheritableThreadLocal的使用
- ThreadLocal和InheritableThreadLocal的使用
- ThreadLocal与InheritableThreadLocal的使用
- ThreadLocal与InheritableThreadLocal的使用
- ThreadLocal和InheritableThreadLocal的使用
- 结构体中用CString的请注意了,不能使用memset()函数来初始化结构体
- JSP中MySQL数据添加/修改/删除
- 消息总线——EventBus
- Android系统Recovery工作原理之使用update.zip升级过程分析(三)---Android系统的三种启动模式
- pl/sql连接时报错 SQL*Net not properly installed OracleHomeKey:
- Java 多线程学习笔记(十) InheritableThreadLocal的使用
- Spark的事务处理
- Android ToolBar 使用总结
- IOS 开发环境,证书和授权文件
- 在windows上编译voxel-sdk源码
- ubuntu 安装glib2.0
- 2016全球大数据战略版图剖析(6):应用篇下
- linux后台运行和关闭、查看后台任务
- composer win7环境下的安装和使用