美文网首页
java-threadlocal示例

java-threadlocal示例

作者: 一个喜欢烧砖的人 | 来源:发表于2018-08-24 18:24 被阅读0次

ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。
废话不多说直接撸代码

public class MyTestDemo {

    ThreadLocal<Long> longLocal = new ThreadLocal<Long>();
    ThreadLocal<String> stringLocal = new ThreadLocal<String>();

    public void set() {
        longLocal.set(Thread.currentThread().getId());
        stringLocal.set(Thread.currentThread().getName());
    }

    public long getLong() {
        return longLocal.get();
    }

    public String getString() {
        return stringLocal.get();
    }


    public static void main(String[] args) throws InterruptedException {

        MyTestDemo myTestDemo = new MyTestDemo();

        myTestDemo.set();

        System.out.println(myTestDemo.getLong());
        System.out.println(myTestDemo.getString());


        Thread thread = new Thread() {
            @Override
            public void run() {
                myTestDemo.set();
                System.out.println(myTestDemo.getLong());
                System.out.println(myTestDemo.getString());
            }
        };
        thread.start();

//        thread.join();     执行此语句意味着thread的线程的东西执行完后在去执行后面的语句 里面的参数表示如果设置时间之后子线程还没有结束 则开启父线程
        System.out.println(myTestDemo.getLong());
        System.out.println(myTestDemo.getString());

    }
}

运行结果

undefined.
1
main
1
main
10
Thread-0

总结:

  • 在get之前如果没有set 则会出现空指针
  • 如果没有set 也可以在创建threadlocal的时候初始化默认值

相关文章

  • java-threadlocal示例

    ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道T...

  • Java ThreadLocal

    Java-ThreadLocal 参考 A Painless Introduction to Java's Thr...

  • 简述Java中的ThreadLocal使用方法

    本文为译文,原文链接:https://www.baeldung.com/java-threadlocal。原文简单...

  • Java-ThreadLocal

    简述 一种线程绑定机制,每个线程都拥有对象的独立副本,不会与其他线程冲突,从而避免了并发与同步问题。 结构 每个线...

  • Java-ThreadLocal

    定义 线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。ThreadLocal可以让每个线程拥有一个属于自...

  • Java-ThreadLocal详解

    1、ThreadLocal的作用为:为每一条线程分配独立的资源,与synchronized方式不同,ThreadL...

  • JAVA-ThreadLocal浅析

    概述 ThreadLocal如果单纯从名字上来看像是“本地线程"这么个意思,只能说这个名字起的确实不太好,很容易让...

  • 解读ThreadLocal-尽量一篇包含所有疑问

    java-ThreadLocal ThreadLocal的实例代表了一个线程局部的变量,每条线程都只能看到自己的值...

  • 深入剖析Java-ThreadLocal原理

    1、ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存...

  • 电子档案管理系统单点登陆示例

    JAVA示例 前台示例代码 后台示例代码 .NET示例 前台ASPX示例代码 后台CS示例代码

网友评论

      本文标题:java-threadlocal示例

      本文链接:https://www.haomeiwen.com/subject/htjeiftx.html