线程问题

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

慕标8476938

2018-11-22

创建的子线程没用runloop对象,才导致在子线程调用performSelector:withObject:afterDelay不响应

写回答

2回答

人间四月0

2019-07-16

线程和runloop是一一对应的,子线程创建时,其实他是没有runloop的,当你第一次用系统的方法 currentRunloop去获取当前子线程的runloop时,系统才会创建子线程的runloop,之后再次获取,就不会再次创建,而是拿到之前创建的runloop.但是主线程的runloop是系统自动生成的,所以主线程的runloop是一直存在的,而子线程的runloop是你第一次去获取它的时候,才会被创建.

0
0

慕标8476938

提问者

2018-11-22

我问错了,是每个线程都有runloop对象,只是gcd开辟的子线程,默认没有打开runloop对吗

0
0

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

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

1749 学习 · 600 问题

查看课程