admin管理员组文章数量:1794759
Java中的ThreadLocal和 InheritableThreadLocal
Java中的ThreadLocal和 InheritableThreadLocal
代码语言:javascript代码运行次数:0运行复制package com.example.core.mydemo.java;
/**
* output
* Thread-0 ThreadLocal value :null
* Thread-0 InheritableThreadLocal value :InheritableThreadLocal string
*/
public class ThreadLocalTest {
public static void main(String[] args) {
//主线程中赋值
ThreadLocal<String> stringThreadLocal = new ThreadLocal<>();
InheritableThreadLocal<String> stringInheritableThreadLocal = new InheritableThreadLocal<>();
stringThreadLocal.set("ThreadLocal string");
stringInheritableThreadLocal.set("InheritableThreadLocal string");
//子线程中分别打印两个变量的信息
new Thread(() -> {
System.out.println(
Thread.currentThread().getName() + " ThreadLocal value :" + stringThreadLocal.get());
System.out.println(Thread.currentThread().getName() + " InheritableThreadLocal value :"
+ stringInheritableThreadLocal.get());
}).start();
}
}
在上面的测试代码中,主线程中创建了两个变量,类型分别为:ThreadLocal和InheritableThreadLocal 然后在主线程中创建了一个新的线程 在新的线程中,尝试获取他们的值 从打印信息可以看得出来 对于ThreadLocal获取的值为null,而对于InheritableThreadLocal则能够获取到值
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-01-15,如有侵权请联系 cloudcommunity@tencent 删除变量线程javastringthread本文标签: Java中的ThreadLocal和 InheritableThreadLocal
版权声明:本文标题:Java中的ThreadLocal和 InheritableThreadLocal 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754973911a1708885.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论