ThreadLocal类
来源:互联网 发布:西安编程培训班 编辑:程序博客网 时间:2024/05/16 15:09
转载只为学习、。。。。。。
ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。
从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。
通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。
ThreadLocal是如何做到为每一个线程维护变量的副本的呢?其实实现的思路很简单,在ThreadLocal类中有一个Map,用于存储每一个线程的变量的副本。
概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal 类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal类
- ThreadLocal 类
- nginx根据$remote_addr分发 (客户端IP)
- linux SCP 命令
- CSA发布云控制矩阵3.0版
- java.lang.OutOfMemoryError: Java heap space 和PermGen space的解决
- WSAStartup函数 和WSACleanup 函数
- ThreadLocal类
- oracle链接SQLSERVER,事务语句的提交
- 使用eclipse JDT compile class,解决 无法确定 X 的类型参数;对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最大实例
- 永恒的主题--java与.net通信编码统一(个人笔记)
- ajax的优缺点
- UFT Mobile (QTP) Setup
- Linux获取系统当前时间(精确到毫秒)
- ms sql 存储过程分页
- 读Python在linux系统运维中的应用http://wuhan88.bitbucket.org