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

来源:8-1 GCD相关面试问题

周小了个楠

2019-10-11

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

写回答

2回答

慕后端8337078

2020-11-19

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

0
0

于海

2019-11-04

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

0
0

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程