大家讲道理2017-04-18 10:39:44
按照設計來說,ThreadLocal
应该依附于Thread
的存在而存在,每一个线程都可以有一份空间来存储,所以你说的第2点我非常赞同,至于第1点,我不太看得懂。
如果按照你的设计,将map
放在ThreadLocal
,那么这个map
得是static
的(或者ThreadLocal
单例中的成员变量),这样在设计上存在严重问题,这个map
將非常難以管理:
1. 试想有没有线程安全问题?
2. 线程销毁后怎么处理,不做处理这个map将会越来越大?
設計都有一套方法,甚至有關哲學,得細細品味。
怪我咯2017-04-18 10:39:44
有些設計有時候並不是單純為了效能,要知道Java是最注重設計模式的,而單一職責是設計模式最重要的原則之一。
反過來說,在ThreadLocal裡直接實現一套Map豈不是比直接使用Map更快速度嗎,但顯然這麼做有違單一職責,也使得維護的成本更高。
迷茫2017-04-18 10:39:44
如果ThreadLoad直接使用Map