Java

Java并发编程问题汇总五:ThreadLocal

ThreadLocal是比较常用的多线程工具,有效理解ThreadLocal的内部原理,对自信地使用它具有益处。

许多朋友认为它是多线程环境下处理数据共享的手段,其实这种想法是对ThreadLocal最大的误解。

内存数据共享是并发编程中需要处理的一大难点,但是ThreadLocal却不是为了解决数据共享问题而生的。顾名思义,ThreadLocal为每个线程提供一个本地(本线程)副本,而这些副本之间,从出生到结束,都是没有丝毫联系的,它们仿佛是生活在平行宇宙中的同名个体,之间没有交际,互补影响,更何谈数据共享。

Java并发编程问题汇总三:AQS

上一篇,我们了解了Java自带synchronized锁的一些相关知识,本篇文章将会聚焦在concurrent中,所有锁类型都会用到的工具类:AQS(AbstractQueuedSynchronizer),看看concurrent包中的ReentrantLock、CountDownLatch等工具都是如何实现的。