Skip to content
阅读进度

同步屏障和异步消息有什么用? ​

返回 Framework 与系统服务 目录

标准回答 ​

同步屏障能让适用队列中的同步消息暂时等待,同时允许后面的异步消息越过屏障。在常见 ViewRootImpl 实现中,scheduleTraversals 会插入屏障并通过 Choreographer 安排 traversal,使帧调度相关异步消息能得到处理,随后移除屏障。它用于协调绘制调度,并不改变主线程一次只执行一个任务的事实,也不能打断当前正在运行的长任务。异步消息仍然在对应 Looper 线程执行,不等于线程池任务。

延伸追问 ​

具体 MessageQueue 数据结构和锁实现可能随 Android 分支变化,应抓住屏障的调度语义,不死记所有版本都相同的内部实现。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。