内容简介:本书共分为四个部分:第一部分详细地介绍了Java多线程的基本用法和各个API的使用,并且着重介绍了线程与Java虚拟机内存之间的关系。第二部分由线程上下文类加载器方法引入,介绍为什么在线程中要有上下文类加载器的方法函数,从而掌握类在JVM的加载和初始化的整个过程,在该部分的最后通过分析mysql数据库驱动的初始化过程更进一步的解释了线程上下文类加载器存在的作用。第三部分主要围绕着volatile关键字展开,在该部分中我们将会了解到现代CPU的架构以及Java的内存模型(JMM),深入掌握高并发编程需要主要到的三个重要特性。最后一部分,主要站在架构设计的高度看待如何巧妙的开发出真正具备并发能力的系统,分别通过不同的场景描述结合我们在开发中经常遇到的问题引入线程模式。
threadlocal存在内存泄露问题。编程时要小心。 jdk给予的优化是,内部的entry extends WeekRefrence<ThreadLocal>,这样每一次gc的时候,都会回收entry中的key引用的threadlocal对象,还有get和set操作的内部,会清理key为null的entry,这样使entry value引用的对象,脱离引用链,具备了被回收的资格。
为什么是主线程调用的
晚上梳理该Demo