首页 技术 正文
技术 2022年11月7日
0 收藏 387 点赞 284 浏览 596 个字

1 ThreadLocal 不是一个线程,而是保存线程本地化对象的容器。当运行于多线程环境的某个对象使用 ThreadLocal 维护变量时,ThreadLocal 为每一个使用该变量的线程分配一个独立的变量副本。所以每个线程都可以独立改变自己的副本,而不会影响其他线程所对应的副本。

2 ThreadLocal 接口具有的方法

2.1 void set(Object value) ,设置当前线程的线程局部变量值

2.2 public Object get(),返回当前线程所对应的线程局部变量

2.3 public void remove(),将当前线程局部变量的值移除,目的是减少内存的占用。当线程结束后,对应该线程的局部变量将自动被垃圾回收。

2.4 protected Object initialValue(),返回该线程局部变量的初始值。ThreadLocal 中的默认实现直接返回一个null。

3 ThreadLocal 和 线程同步机制都是为了解决多线程中相同变量的访问冲突问题。同步机制是通过对象的锁机制保证同一时间只有一个线程访问变量。这时该变量是多个线程共享的。

ThreadLocal 为每个线程提供了一个独立的变量副本,从而隔离了多线程对访问数据的冲突。

对于多线程资源共享问题,同步机制使用了“以时间换空间”的方式,访问串行化,对象共享化。而 ThreadLocal 采用“以空间换时间”的方式,访问并行化,对象独享化。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,031
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,860