美文网首页
Android Framework学习之线程间消息传递机制

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

作者: 一只二凡子 | 来源:发表于2022-12-27 09:37 被阅读0次

    说说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就能收到事件了,就会被唤醒,唤醒后就从队列里取消息进行处理

    相关文章

      网友评论

          本文标题:Android Framework学习之线程间消息传递机制

          本文链接:https://www.haomeiwen.com/subject/ztghqdtx.html