InheritableThreadLocal and ThreadPools

https://stackoverflow.com/questions/7296623/inheritablethreadlocal-and-thread-pools 当ThreadLocal,尤其是InheritableThreadLocal和ThreadPool一起使用时,可能出现问题, 因为ThreadPool会复用线程,而子线程保存的一直是首次被call时,父线程的TL快照,当被复用时,ITL中的值是不会变的。所以即便在父线程中更新了TL(父线程大多是新的线程),被复用的子线程中的ITL也不会变。这会带来很多潜在的问题。一个推荐的解决方式是使用TL然后自行封装向子线程的传递。这个在link上有 https://github.com/lWoHvYe/unicorn/commit/a839e5cbac88d0bffb7fffc7a1b61a0b9be82386 在ITL的注释中,已经很明确了,是create时 when a child thread is created, the child receives initial values for all inheritable thread-local variables for which the parent has values.

lWoHvYe 无悔,专一