runLoop小结

1、runloop和线程有什么关系?

runloop:正如其名,loop表示某种循环,和run放在一起就是表示一直运行的某种循环,runloop和线程是紧密相连的,也是一一对应的,runloop就是为了线程而生,没有线程就没有runloop,没有runloop线程就不能一直活着。

2、如何让线程一直活着?
1)、除了在该线程中开启runloop也就调用[[NSRunLoop currentRunLoop] run];
还要在此方法调用之前添加线程需要处理的input source或者timer,如果没有input source或者timer。runloop会立即退出,没有存在的必要
2)、也就是[[NSRunLoop currentRunLoop] run];之前调用 [runloop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];添加一个port作为inputsource,此后这个线程就能活着为我所用。

你可能感兴趣的:(runLoop小结)