runloop 和线程有什么关系

每条线程都有唯一的一个 RunLoop 对象与之对应的

主线程的 RunLoop 自动创建并启动

子线程的 RunLoop 需要手动创建
子线程的 RunLoop 创建步骤如下:
在子线程中调用
[NSRunLoop currentRunLoop]创建 RunLoop 对象(懒加载,只创建一次)

获得RunLoop对象后要调用run方法来启动一个运行循环 //启动RunLoop[[NSRunLoop currentRunLoop] run];

RunLoop的其他启动方法 //第一个参数:指定运行模式
// 第二个参数:指定 RunLoop 的过期时间,即:到了这个时间后

RunLoop 就失效了
[[NSRunLoop currentRunLoop] runMode:kCFRunLoopDefaultModebeforeDate:[NSDate distantFuture]]; 

你可能感兴趣的:(runloop)