首页 > 其他分享 >ThreadLocal

ThreadLocal

时间:2024-02-25 22:44:35浏览次数:21  
标签:set THREAD ThreadLocal static LOCAL public

1.用来存储数据:set()/get()
2.使用ThreadLocal存储的数据,线程安全
3.用完调用remove方法释放(否则可能发生内存泄漏)

`/**

  • ThreadLocal 工具类
    */
    @SuppressWarnings("all")
    public class ThreadLocalUtil {
    //提供ThreadLocal对象,
    private static final ThreadLocal THREAD_LOCAL = new ThreadLocal();

    //根据键获取值
    public static T get(){
    return (T) THREAD_LOCAL.get();
    }

    //存储键值对
    public static void set(Object value){
    THREAD_LOCAL.set(value);
    }

    //清除ThreadLocal 防止内存泄漏
    public static void remove(){
    THREAD_LOCAL.remove();
    }
    }`

标签:set,THREAD,ThreadLocal,static,LOCAL,public
From: https://www.cnblogs.com/kisssheep/p/18033268

相关文章

  • 浅析ThreadLocal源码
    privatevoidset(ThreadLocal<?>key,Objectvalue){//Wedon'tuseafastpathaswithget()becauseitisat//leastascommontouseset()tocreatenewentriesas//itistoreplaceexistingones,inwhichcase,afast/......
  • ThreadLocal
    前置知识Java中有些引用类型?Java中主要有4种引用类型,分别是:强、软、弱、虚。他们主要跟Java的垃圾回收机制有关强引用:Java中默认的引用类型,一个对象如果具有强引用,那么只要这种引用还存在就不会被回收软引用:在内存充足时,是不会GC这个对象的。只有在JVM内存不足的时候才会调用......
  • 多线程系列(七) -ThreadLocal 用法及内存泄露分析
    一、简介在Javaweb项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,打破层次之间的约束。比如下面这个HttpServletRequest参数传递的简单例子!publicclassRequestLocal{/***线程本地变量*/......
  • ThreadLocal使用
     Thread:Thread类中有两个变量threadLocals和inheritableThreadLocals,两者都是ThreadLocal.ThreadLocalMap类型,默认情况下为null,对应源码为1ThreadLocal.ThreadLocalMapthreadLocals=null;23ThreadLocal.ThreadLocalMapinheritableThreadLocals=null;ritabl......
  • 【JDK】Random 的局限以及ThreadLocalRandom 类原理剖析
    1 前言我们平时使用随机数大家可能会用到 Random,但是它的问题大家知道吗?以及该如何解决呢?这节我们就来看看。2  Random类及其局限性在JDK7之前包括现在,java.util.Random都是使用比较广泛的随机数生成工具类,而且java.lang.Math中的随机数生成也使用的是java.util.......
  • ThreadLocal
    (ThreadLocal)什么是ThreadLocal?ThreadLocal被译为==线程本地变量”类==,在Java的多线程并发执行过程中,为保证多个线程对变量的安全访问,可以将变量放到ThreadLocal类型的对象中,使变量在每个线程中都有独立值,不会出现一个线程读取变量时而被另一个线程修改的现象。ThreadLo......
  • 利用ThreadLocal优化获取用户基本信息
    //测试类packagecom.di.bigevent;importorg.junit.jupiter.api.Test;publicclassThreadLocalTest{@TestpublicvoidtestThreadLocalSetAndGet(){ThreadLocaltl=newThreadLocal();newThread(()->{tl.set("李星......
  • threadlocal 线程本地变量,线程独享
         ......
  • 服了,一个ThreadLocal被问出了花
    分享是最有效的学习方式。博客:https://blog.ktdaddy.com/故事地铁上,小帅无力地倚靠着杆子,脑子里尽是刚才面试官的夺命连环问,“用过TheadLocal么?ThreadLocal是如何解决共享变量访问的安全性的呢?你觉得啥场景下会用到TheadLocal?我们在日常用ThreadLocal的时候需要注意什么?Thr......
  • 使用ThreadLocal
    线程是Java实现多任务的基础,Thread对象代表一个线程,我们可以在代码中调用Thread.currentThread()获取当前线程。例如,打印日志时,可以同时打印出当前线程的名字:  对于多任务,Java标准库提供的线程池可以方便地执行这些任务,同时复用线程。Web应用程序就是典型的多任务应用,每个用......