RunLoop

什么是RunLoop

  • 从字面意思看,运行循环,转圈
  • 从内部看就是一个高级的do-while循环,这个循环不断地处理各种任务(比如Source\timer\Observer)
  • 一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop得手动启动(调用run的方法)

RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Source\Timer\Observer,那么就直接退出RunLoop

自动释放池什么时候释放

  • 在RunLoop睡眠之前释放(KCFRunLoopBeforeWaiting)

开发中如何使用RunLoop?什么应用场景

  • 开启一个常驻线程(让一个子线程不进入消亡状态,等待其他线程发来消息,处理其他事件)
  • 在我们子线程中长期监控一个行为

-- 在子线程中开启一个定时器

  • 可以控制定时器在特定模式下执行
  • 可以让某些事件(行为\任务)在特定模式下执行
![ ![Snip20160322_1.png](http://upload-images.jianshu.io/upload_images/1329661-a7c405da088305b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://upload-images.jianshu.io/upload_images/1329661-3abbf757e9aa1b18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容