ThreadLocal的一些理解

最近看Handler及Activity相关的文章,多次碰到ThreadLocal这个类,该类实现了进程内线程间的通信,一直不理解,这个东西怎么能够实现线程间的通信的?所以就找资料研究了一下,发现它的设计还是挺简单的,但是完全理解它的用法,却需要仁者见仁智者见智了。

下面说下本人的一些小理解,该类提供了线程安全的同步处理。这个线程安全是如何保证的呢?该类中维护着一个静态内部类ThreadLocalMap,每个线程的调用都会被存到map中,并以调用的thread为key,所生成对象为value。因为该map是一个静态内部类,所以我们即使创建多个该对象,也只维护了一个ThreadLocalMap,因此所有调用的线程共享这一个map,我们可以通过该map来访问到其他thread所持有的数据。

我们在使用Handler的时候,都会接触到Looper,在Looper中就使用到了该类。每个Looper只能绑定一个线程,因此在使用Handler的线程中,我们可以同步的处理一些事情,而无需处理线程安全问题。

参考链接:https://blog.csdn.net/lufeng20/article/details/24314381

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容