【每日阅读】2021年01月07日-ThreadLocal的实现

一般理解可能说在ThreadLocal内存储一个Map,Map的key是Thread,value是对象,但其实不是这样。

实际上是这样,在Thread内部有一个ThreadLocalMap,这个Map的key是ThreadLocal,value是对象。

这样的设计使得ThreadLocal只充当一个代理类,和线程相关的数据都存储在Thread内部。第二个原因是不容易内存泄漏,因为ThreadLocal生命周期一般比线程长,一旦没有remove操作,则Thread引用一直会在ThreadLocal内,导致Thread不会被回收,造成内存泄漏。

原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2776

(1)
geekgaogeekgao博主
上一篇 2021年1月6日
下一篇 2021年1月9日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

GitHub
分享本页
返回顶部

Warning: error_log(/usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/#log/log-2117.txt): failed to open stream: No such file or directory in /usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/spider.class.php on line 2900