ThreadLocal为什么建议用static修饰

1,static修饰的变量的生命周期

首先static修饰的变量是在类在加载时就分配地址了,在类卸载才会被回收,这一点请明确.

2,分析

ThreadLocal的原理是在Thread内部有一个ThreadLocalMap的集合对象,他的key是ThreadLocal,value就是你要存储的变量副本, 不同的线程他的ThreadLocalMap是隔离开的,如果变量ThreadLocal是非static的就会造成每次生成实例都要生成不同的ThreadLocal对象,虽然这样程序不会有什么异常,但是会浪费内存资源.造成内存泄漏.

所以建议ThreadLocal用static修饰

 


版权声明:本文为xiaochao_bos原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。