搜索
您的当前位置:首页正文

Runloop-事件循环实现机制

来源:二三娱乐
屏幕快照 2018-05-11 11.03.51.png

runloop启动后,会首先发送一个通知告诉观察者即将进入runloop;
之后runloop会向观察者发送一个即将处理Timer和source0事件的通知;
然后runloop会正式处理source0事件;
然后如果有source1事件需要处理,则会通过goto跳转代码逻辑到处理source1事件;
如果没有source1事件处理,则线程此时将要休眠,并发送通知,然后进行用户态到内核态的切换,然后线程休眠等待唤醒;

唤醒线程的条件有:

  • source1
  • timer事件的回调
  • 外部手动唤醒
Top