threadLocal笔记

4 篇文章 0 订阅
1 篇文章 0 订阅

threadLocal笔记

什么是threadLocal

threadLocal用于处理数据的隔离性,多个线程同时访问一个变量时,可能会出现错误的变量信息。这个时候可以使用线程同步机制处理或者使用threadlocal进行处理。

线程同步机制和threadlocal之间的区别

线程同步实现的是时间换空间,threadlocal实现的是空间换时间

  • 线程同步:在一个线程进行访问时,会进行加锁,加锁之后其他的线程无法对该变量进行操作,只有在当前线程操作完毕后,释放锁,其他线程才能进行操作。
  • threadlocal:为线程提供一个独立的变量副本,这个变量副本的可用性只限制为当前线程。这个操作需要消耗空间。
ThreadLocal<String> threadlocal= new ThreadLocal();
threadlocal.set("张三");  //添加变量到threadlocal中
String name = threadlocal.get();    //获取threadlocal中的值

threadlocalMap

使用threadlocal进行修饰的变量是保存到threadlocalmap中,当前threadlocalmap对应的是当前线程的变量副本。threadlocalMap并不是map结构,他不具备链接,threadlocalmap的结构是数组结构。每一个数组单位存放的是一个Entry,存放的数据同样是以key-value的形式进行存储。key值使用的是弱引用,key值与变量的threadlocal对象相对应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值