请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于最后一个问题,创建runloop为什么也不能打印2?

在block中,先执行一下【NSRunloop currentRunloop】,创建当前线程的runloop,之后再执行performSelector方法,为什么也不能打印2?

正在回答 回答被采纳积分+3

2回答

慕后端8337078 2020-11-19 17:54:53

因为runloop需要 timer,source,observe 其中一种才能开启, 所以先执行run不会开启runloop。performSelector延迟实现其实是timer,所以在performSelector后面才能开启runloop。

0 回复 有任何疑惑可以回复我~
于海 2019-11-04 16:37:53

GCD中的全局并发队列底层是系统维护的线程池,要避免在GCD中创建Runloop。可以参考下这篇文章:https://www.jianshu.com/p/7eaedfc8f8f6 如果需要验证,可以放到自己创建的NSThread中

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信