万剑归宗

RunLoop:

1、机制:通过observer去观察处理(timer-source0-source1-休眠-唤醒-timer....) 
      source0(触摸事件、performSelector)
      source1(基于port的线程之间事件消息)
2、Model: 5种Model(默认、UI正在改变时Track、App刚启动第一次、系统的事件处理、Common)
3、注意事项: 
a.主线程默认开启RunLoop, 子线程需要自己开启run, RunLoop需要先添加item再开启,不然开启RunLoop,检测没有item自动退出
b.为了避免操作UI时,定时器不响应,Model应设置为Common.
c.避免正在操作UI时,子线程网络请求返回数据,主线程更新UI,导致用户操作不顺畅, 可
[self performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO modes:@[NSDefaultRunLoopMode]];
NSDefaultRunLoopMode只有在没有UI操作时才会执行线程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容