采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在block中,先执行一下【NSRunloop currentRunloop】,创建当前线程的runloop,之后再执行performSelector方法,为什么也不能打印2?
因为runloop需要 timer,source,observe 其中一种才能开启, 所以先执行run不会开启runloop。performSelector延迟实现其实是timer,所以在performSelector后面才能开启runloop。
GCD中的全局并发队列底层是系统维护的线程池,要避免在GCD中创建Runloop。可以参考下这篇文章:https://www.jianshu.com/p/7eaedfc8f8f6 如果需要验证,可以放到自己创建的NSThread中
登录后可查看更多问答,登录/注册
从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系
1.3k 11
1.9k 9
1.2k 9
1.0k 8
998 8