1、应用场景
应用在线程并发的场景下。
2、传递数据
我们可以通过ThreadLocal在同一线程不同组件中传递公共变量
3、线程隔离,每个线程的变量都是独立的,不会相互影响。
4、ThreadLocal和Synchronized的区别
T 空间换时间
S 时间换空间
5、C3P0?
6、JDK7和JDK8的不同
ThreadLocalMap是threadLocal的内部类,没有实现map接口,自己实现的。
7、内存溢出和内存泄露
内存泄露:已经分配的对内存,由于某种原因一直无法释放。
内存溢出:没有可用的内存,不够用了。
8、ThreadLocal内存泄露的原因
thread没有被回收
entry没有被删除,没有调用remove方法()
9、threadLocal的方法
innitor()
set()
get()
remove()
10、threadLocalmap解决hash冲突
使用的是线性探测法。
11、线程池的五种状态
running
shutdown
stop
tiding 所有的任务都已终止
terminate 线程池结束