美文网首页
Handler的工作原理(三)

Handler的工作原理(三)

作者: 贝贝ovo | 来源:发表于2019-05-05 11:06 被阅读0次

    总结篇

    • 每个Thread中都有一个ThreadLocal.ThreadLocalMap属性
    • 这个ThreadLocal.ThreadLocalMap属性中保存的是以ThreadLocal为key的类似于HashMap的哈希表,以Entry形式作为结点。
    • 在线程中执行ThreadLocal.set(value)方法时,都会先获取到当前线程中的ThreadLocalMap,然后以自身(this)为key将数据保存进去。
    • 在线程中执行ThreadLocal.get()方法时,也是先获取到当前线程中的ThreadLocalMap,然后以自身(this)为key去取值。

    这样,实际上每个线程中都保存一份数据,Looper就是这样保存在自身当前的线程中的。这也是为什么Looper中的sThreadLocalstatic的,却能在不同的线程中获取到自己线程的Looper的原因。
    实际上,真正最重要的角色,是ThreadLocalMap
    Android Looper-ThreadLocal-Thread 之间的关系

    相关文章

      网友评论

          本文标题:Handler的工作原理(三)

          本文链接:https://www.haomeiwen.com/subject/lihcoqtx.html