В дополнение к тому, что сказал @aioobe, рассмотрим случай InheritableThreadLocal
, в котором значение local передается из потока в каждый дочерний поток, который он создает.
И, как говорит @pst, ничто не мешает использовать одно и то же значение в разных (не наследуемых) ThreadLocal
с.
Короче говоря, вы должны провести тщательный анализ локальных потоков, способа их инициализации и способа их использования, прежде чем вы сможете безопасно заключить, что они не должны быть безопасными для потоков.