同步屏障机制
通过mHandler.getLooper().getQueue().postSyncBarrier();可以开启同步屏障。
简单来说就是发送一个特殊的消息,它的target为空。
然后,looper的死循环中,会判断一个消息的target==null,满足条件就会开始dowhile遍历,直到找到异步消息并执行,执行完会重复上述操作。(异步消息判断方法由)
当我们手动关闭同步屏障时,就不会卡住同步消息了。
同步屏障不能唤醒block的线程,也不会阻止消息的发送到队列。
异步消息发送方法
setAsynchronous(),将某条消息设置为异步,不过我们平时发送需要通过反射才能调用到。
还有一种就是handler构造里传参数,但这个是发送所有消息都是异步。