RunLoop处理逻辑

如图是从苹果官方文档截取下来的RunLoop处理逻辑流程图,

                                            

runLoop处理逻辑过程为:1.通知Observer即将进入Loop;

                                           2.通知Observer;即将处理Timer;

                                           3.通知Observer将要处理Source0

                                           4.处理Source0

                                           5.如果有Source1,跳到第9步

                                           6.通知Observer,线程即将休眠

                                           7.休眠,等待唤醒

                                           8.通知Observer,线程刚被唤醒

                                           9.处理唤醒时收到的消息,之后跳回2

                                          10.通知Observer即将退出Loop     


二、与RunLoop有关的面试题

  1.什么是RunLoop?

   答:字面意思为运行循环,其实内部就是do-while循环,在这个循环内部不断处理各种任务  (比如触摸事件、定时器事件、@selector()事件、observer) 。一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop需要手动启动(调用run方法)  

  2.自动释放池什么时候释放

   答:通过Observer监听RunLoop的状态




  

                             

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值