Android Framework学习之线程间消息传递机制

说说android线程间消息传递机制

msg.target: Handler

msg.recycleUnchecked(): 回收message,将这条消息重置后,放入一个单链表

msg.callback: Runnable

Handler hook 技术: 通过反射给mCallback赋值,mCallback.handleMessage(msg) return false

nativePollOnce: 阻塞在那监听是否有别的线程往当前线程的消息队列里发消息,如果有,就会唤醒阻塞,或者超时了nextPollTimeoutMilllis,也会唤醒阻塞。

epoll_wait:会一直阻塞在那,返回的情况:1.出错了,eventCount < 0,  2. 超时了,eventCount == 0,3. 有事件发生了, eventCount就是事件的个数。

每个事件对应一个fd

发消息

sendMessageAtTime:在这个时间分发消息

nativeWake:唤醒消息队列所在的线程

线程B往线程A的消息队列里插入一条消息的同时往eventfd里写一个数,这样线程A就能收到事件了,就会被唤醒,唤醒后就从队列里取消息进行处理

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容