Java中的ThreadLocal和 InheritableThreadLocal

Java中的ThreadLocal和 InheritableThreadLocal代码语言:javascript代码运行次数:0运行复制package com.example.core.mydemo.java;*** output* Th

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

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754973903a5223401.html

相关推荐

  • Java中的ThreadLocal和 InheritableThreadLocal

    Java中的ThreadLocal和 InheritableThreadLocal代码语言:javascript代码运行次数:0运行复制package com.example.core.mydemo.java;*** output* Th

    1月前
    220

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信