课程简介
很多Java程序员对ThreadLocal这个类有所耳闻, 特别是在求职的时候经常被面试官所提及。但是在实际开发中,这个类不常直接用到,甚至不少人都未曾听说过。网上相关的资源繁杂,晦涩难懂,分析不到位等问题也大大提高同学们的学习成本。
在本课程中,我们将全面的讲解ThreadLocal类,从ThreadLocal的介绍,再到具体应用和源码分析,由浅入深,对ThreadLocal进行详细的解剖, 全方位覆盖ThreadLocal相关的知识和面试问题。
课程亮点
课程全面,包含:ThreadLocal基本介绍,运用场景,源码分析,常见面试问题等
结合源码和画图解构ThreadLocal,更加形象
源码分析不仅仅停留在表面,有源码为何这样设计的思考
覆盖常见的面试问题: 如TheadLocal和synchronized关键字和内存泄漏方面都有深入的分析
适用人群
有一定的Java基础,并且要有一定的web开发基础。
课程内容
章节一:ThreadLocal介绍
1.官方介绍
2.基本使用
3.ThreadLocal类与synchronized的区别
章节二:事务案例
1.转账案例
2.常规解决方案以及弊端
3.ThreadLocal解决方案
章节三:ThreadLocal的内部结构
1.常见的误解
2.现在的设计
3.这样设计的好处
章节四:ThreadLocal的核心方法源码
1.set方法
2.get方法
3.remove方法
4.initialValue方法
章节五:ThreadLocalMap源码分析
1.基本结构
2.弱引用和内存泄漏
3.Hash冲突的解决
2人已评分
我也要评分
accountService.transfer方法中都是使用的局部变量,包括数据库连接也是在service方法中获取,然就传到Dao中,即使同时多个线程都在执行转账方法,它们的连接也不同的,不存在相互干扰吧,希望解答疑惑
42020-05-18 20:14
不是很明白常规解决方案(不使用ThreadLocal)的场景下,还需要在Service方法中对两个Dao的方法使用synchronized加锁,即使在高并发场景下,accountService.transfer方法中都是
12020-05-18 20:08