首页 > 其他分享 >Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?

Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?

时间:2024-09-25 21:24:13浏览次数:3  
标签:tl1 Thread ThreadLocalMap Value ThreadLocal Key Entry

  • Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?
    • 首先ThradLocal是线程的本地副本,怎么理解这句话呢?
    • 一个Thread都有一个它自己的ThreadLocalMap。
    • ThreadLocalMap不是HashMap的结构,而是一个Entry数组,里面存放了一个一个的Entry。
    • 而Entry中存放的就是key和value,这个key就是ThreadLocal。
  • ThreadLocal使用步骤:
    • 创建ThreadLocal对象
    • 获取本地线程
    • 从本地线程中获取ThreadLocalMap
    • 从ThreadLocalMap中找到对应的Entry进行set值

  • 实例代码:

  • 主线程

Thread A ——> ThreadLocalMap(其实是Entry数组)

Key                 Value

tl1                   muse

                        bob

tl2                   john 

  • 线程池

Thread A1 ——> ThreadLocalMap(其实是Entry数组)

Key                 Value

tl1                   pool-1-thread1

Thread A2 ——> ThreadLocalMap(其实是Entry数组)

Key                 Value

tl1                   pool-1-thread2

Thread A3 ——> ThreadLocalMap(其实是Entry数组)

Key                 Value

tl1                   pool-1-thread3

Thread A4 ——> ThreadLocalMap(其实是Entry数组)

Key                 Value

tl1                   pool-1-thread4

标签:tl1,Thread,ThreadLocalMap,Value,ThreadLocal,Key,Entry
From: https://blog.csdn.net/weixin_44038236/article/details/142502818

相关文章

  • 【JUC并发编程系列】深入理解Java并发机制:线程局部变量的奥秘与最佳实践(五、ThreadLo
    文章目录【JUC并发编程系列】深入理解Java并发机制:线程局部变量的奥秘与最佳实践(五、ThreadLocal原理、对象之间的引用)1.基本API介绍2.简单用法3.应用场景4.Threadlocal与Synchronized区别5.内存溢出和内存泄漏5.2内存溢出(MemoryOverflow)5.2内存泄漏(Mem......
  • Multi-threading - Token Bucket Emulation in C
    Multi-threading-TokenBucketEmulationinCYouwillemulate/simulateatrafficshaperthattransmits/servicespacketscontrolledbyatokenbucketfilterdepictedbelowusingmulti-threadingwithinasingleprocess.Ifyouarenotamiliarwithpthrea......
  • JavaEE——多线程Thread 类及常见方法
    目录 一、Thread(Stringname)二、是否后台线程isDeamon()三、是否存活isAlive()四、run()方法和start()方法的区别五、中断线程法一:法二:六、线程等待join()七、线程休眠sleep()一、Thread(Stringname)定义:这个东西是给线程(thread对象)起一个名字。起一个......
  • C# 线程(Thread)
    一、基本概念1、进程首先打开任务管理器,查看当前运行的进程:从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢?进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可......
  • 《深入解析 Java 中的 ThreadLocal》
    ThreadLocal1.概述ThreadLocal被称为线程局部变量,用于在线程中保存数据。由于在ThreadLocal中保存的数据仅属于当前线程,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal用于在同一个线程间,在不同的类和方法之间共享数据的的场景,也可以......
  • Arthas thread(查看当前JVM的线程堆栈信息)
    文章目录二、命令列表2.1jvm相关命令2.1.2thread(查看当前JVM的线程堆栈信息)举例1:展示[数字]线程的运行堆栈,命令:thread线程ID举例2:找出当前阻塞其他线程的线程二、命令列表2.1jvm相关命令2.1.2thread(查看当前JVM的线程堆栈信息)使用场景:在Arthas中,thread命令用于查看和分......
  • 进程已结束,退出代码为 -1073740791 (0xC0000409)。QThread: Destroyed while thread i
            在使用pycharm写代码发现代码运行不了,进程已结束,退出代码为-1073740791(0xC0000409),但是又不提示具体错在哪。为了得到更加清晰的错误原因,可如下操作:        ①点击debug旁边的三个小点moreactions,点击编辑。        ②勾选在控制台中......
  • 【Java】了解线程 Thread 类的使用,
    线程是什么线程是操作系统中调度的基本单位,是比进程更小的执行单元。线程在进程内部运行,共享该进程的资源,如内存和文件句柄,但每个线程都有自己的执行栈和程序计数器。线程的主要特点包括:轻量级:线程相较于进程更加轻量,创建和销毁的开销较小。共享资源:同一进程中的线程共享该进程的内......
  • 【Java】深入解析ThreadLocal——Java并发编程的秘密武器
            ThreadLocal被称为线程局部变量,用于在线程中保存数据。由于在ThreadLocal中保存的数据仅属于当前线程,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。        ThreadLocal用于在同一个线程间,在不同的类和方法之间共享数据......
  • ScheduledThreadPoolExecutor
    总结继承自ThreadPoolExecutor并实现了ScheduledExecutorService接口。提供了基于线程池的定时任务调度功能,允许你安排任务在未来某个时间点执行一次,或者周期性地重复执行。特性定时任务:可以安排任务在指定延迟后执行。周期性任务:可以安排任务按照固定的时......