ThreadLocal有个缺陷,在子线程里无法访问父线程的变量,
InheritableThreadLocal 解决了这个问题,自动会把父线程的变量传递个子线程,
子线程只能用,修改了不会影响父线程的 东西
public class Test {
private final static InheritableThreadLocal<String> holder = new InheritableThreadLocal<String>();
public static void main(String[] args){
holder.set("aaa");
System.out.println("begin=" + holder.get());
Thread a = new Thread(){
public void run() {
System.out.println("thread-begin=" + holder.get());
holder.set("vvvvvvvvvvvvv");
System.out.println("thread-end=" + holder.get());
}
};
a.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end=" + holder.get());
分享到:
相关推荐
此代码采用直接给线程变量赋值不需要参数传递
C#多线程互斥实例 多线程获取同一变量(不重复)。是一个很好的学习例子
该文件中实例说明了如何在Labwindows/cvi中使用线程锁和线程安全变量进行多线程程序设计
一、题目: 创建线程,利用互斥实现线程共享变量通信 二、目的 掌握线程创建和终止,加深对线程和进程概念的理解,会用同步与互斥方法实现线程之间的通信。 三、内容和要求 软件界面上点“创建线程” 按钮,创建三个...
1.Qt下,多线程使用互斥锁安全访问同一全局变量;2.源码中定义了ThreadA和ThreadB,定义变量后,依次调用函数start()来启动重写的run()函数
一个简单记录java多线程下变量共享问题,分析多线程内部运行
目标:在一个线程运行的时候,主程序或者另一个线程,通过改变全局变量实时改变目标变量的做法,比如这里,楼主也就是我,为了在树莓派上运行一个tcp结构的客户端线程,并通过摄像头线程收集的数据实时的通过tcp客户端线程...
NULL 博文链接:https://toknowme.iteye.com/blog/2212529
java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多线程专属的变量源码java ThreadLocal多...
局部变量 线程 安全 测试 源码,用多线程测试局部变量是否线程安全。
pthread 条件变量,线程同步
采用全局变量方式实现多线程的通信:用一个全局变量来控制时间显示线程的时间显示格式,比较简单,仅供参考和学习,欢迎大家多多交流。
java 多线程 加减变量
主要介绍了Java并发编程示例(九):本地线程变量的使用,有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享,Java并发接口提供了一种很清晰的机制来满足此需求,该机制称为本地线程变量,需要的...
条件变量所为一种线程安全对象,在多线程开发中,是有一些使用场景的,比如多个线程协作执行任务,或者生产者消费者模式的实现,都可以使用条件变量来进行线程控制。c语言做多线程开发,实现一个跨平台条件变量量...
本文主要是对C语言多线程中变量累加问题进行分析,感性趣的朋友可以参考下。
多线程同时操作全局变量的出错演示:演示了9个线程同时操作全局变量的出错结果,并采用自动验证结果,直到程序出错,有很好的演示和学习价值。
易语言线程中的变量应用源码,线程中的变量应用,这个是线程,CreateThread,GetCurrentThreadId,CloseHandle