已经明白了ThreadLocal实现了原理,
但是还是有些疑问,现在的实现是在Thread内维护了一个ThreadLocalMap,
而不是在ThreadLocal里面维护一个map然后用Thread用做Key,需要存的值为value呢?
看见有人说
这样设计之后每个Map的Entry数量变小了:之前是Thread的数量,现在是ThreadLocal的数量,能提高性能,据说性能的提升不是一点两点
当Thread销毁之后对应的ThreadLocalMap也就随之销毁了,能减少内存使用量.
第2点觉得还能理解一些,第一点的话为什么可以提高性能呢?
原来的只需要维护一个集合就好了,如果用了现在的实现,虽然维护的Entry数量变少了,但是维护的集合不是变多了吗?难道是因为创建集合消耗的性能更低吗?
还是因为在特殊的环境下,的确会发生需要维护少量Entry性能更高?在Android开发环境下会遇到这种情况吗?