首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tip | Android的消息机制

Tip | Android的消息机制

作者头像
凌川江雪
发布2019-04-18 16:11:36
3880
发布2019-04-18 16:11:36
举报

简述

  • 首先,底层实现了一个线程本地存储,叫ThreadLocal区域, 一个主线程以及它对应的所有子线程,共享同一个 ThreadLocal对象, 这个ThreadLocal对象中可以说逻辑上维护着一个key-value表, 这个表为不同的线程 一 一 对应地维护一套数据副本, 每一套数据副本对应着一个线程 (有多少线程共享这个ThreadLocal对象,ThreadLocal对象就准备多少套数据副本), 每一套数据副本也是ThreadLocal对象中这个逻辑表的一个项, 数据副本在这里可以具体化为Looper对象,
  • 而主线程及其所有子线程都可以开辟自己的Looper, 每一个Looper都要绑定在一个Handler上,(如下方图1图2) 然后这些个每个Looper都是共享的ThreadLocal中逻辑表的一个项, 这个项有key和value两部分, value是每一个线程对应的Looper, 而key则是存放在ThreadLocal中一个唯一的静态的Looper对象了,(如下方图3) 然后这个唯一的静态的Looper对象了关联着一个MessageQueue,
  • 也就是说,所有线程的Looper都映射到同一个Looper上, 所有线程的Looper中关联的MessageQueue也是映射到对应的同一个MessageQueue上;(如下方图1图2)
  • (常规表述)

附图

图1

图2

图3

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简述
  • 附图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档