标签归档:MessageQueue

Android MessageQueue中的同步屏障

Message中有一个方法叫Message.setAsynchronous,表示发送异步消息,然而他需要插入同步屏障才能生效,那什么是同步屏障呢?

一般来说,Message如果按顺序进行发送的,并不是设置delay的话,运行都是同步的,然而在某些特殊时期,为了提高某个消息的优先级,防止中途插入的Message导致任务调度延迟,会使用异步Message,当调用postSyncBarrier之后,之后的任意同步消息都不再执行,期间只能执行异步消息,直到移除了同步屏障。

插入屏障:MessageQueue.postSyncBarrier

往链表里插入了一个奇怪的msg,他的target为null

消息循环:MessageQueue.next

遍历消息,也就是忽略所有非异步消息,只取出异步消息 查看更多