从TL、ITL到TTL | 京东物流技术团队
原文中文,约10100字,阅读约需24分钟。发表于: 。ThreadLocal(TL)、InheritableThreadLocal(ITL)和TransmittableThreadLocal(TTL)在不同场景下有不同用途,本文我们来分析一下
ThreadLocal(TL)是Java中一种线程局部变量实现机制,为每个线程提供一个单独的变量副本,保证多线程场景下的线程安全。InheritableThreadLocal(ITL)是JDK提供的TL增强版,TransmittableThreadLocal(TTL)是阿里开源的ITL增强版。ITL解决了TL子线程遗传性的问题,通过将可遗传的ThreadLocal放在父线程新的ThreadLocalMap中,在子线程首次使用时进行拷贝。TTL在ITL上做了封装,通过封装线程池和任务,让子线程感知父线程的ThreadLocal变化。