JAVA并发之ThreadLocal详解

目录

1、带着BAT大厂的面试问题去理解

2、ThreadLocal简介

3、ThreadLocal理解

4、ThreadLocal原理

4.1、如何实现线程隔离

4.2、ThreadLocalMap对象是什么

5、ThreadLocal造成内存泄露的问题

6、再看ThreadLocal应用场景

6.1、每个线程维护了一个“序列号”

6.2、Session的管理

6.3、在线程内部创建ThreadLocal

6.4、java 开发手册中推荐的 ThreadLocal

ThreadLocal是通过线程隔离的方式防止任务在共享资源上产生冲突, 线程本地存储是一种自动化机制,可以为使用相同变量的每个不同线程都创建不同的存储。

1、带着BAT大厂的面试问题去理解

  • 什么是ThreadLocal? 用来解决什么问题的?
  • 说说你对ThreadLocal的理解
  • ThreadLocal是如何实现线程隔离的?
  • 为什么ThreadLocal会造成内存泄露? 如何解决
  • 还有哪些使用ThreadLocal的应用场景?

2、ThreadLocal简介

线程安全(是指广义上的共享资源访问安全性,因为线程隔离是通过副本保证本线程访问资源安全性,它不保证线程之间还存在共享关系的狭义上的安全性)的解决思路:

  • 互斥同步: synchronized 和 ReentrantLock
  • 非阻塞同步: CAS, AtomicXXXX
  • 无同步方案: 栈封闭,本地存储(Thread Local),可重入代码

这个章节将详细的讲讲 本地存储(Thread Local)。官网的解释是这样的:

This class provides thread-local variables. These variables differ from their normal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao_kkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值