Run Loops
每个线程都有一个或多个
run loop。然而每个
run loop
和每个线程都有它自己
的输入模式来决定 run loop 运行的释放监听那些输入源。输入模式定义在一个 runloop 上面,不会影响定义在其他 run loop 的输入模式,即使它们的名字相同。
如果你的线程是基于 Application Kti 的话,主线程的 run loop 会自动运行,但是辅助线程(和只有 Foundation 的应用)必须自己启动它们的 run loop。如果一个脱离线程没有进入 run loop,那么线程在完成它们的方法执行后会立即退出。
尽管外表显式可能是线程安全的,但是 NSRunLoop 类是非线程安全的。你只能在拥有它们的线程里面调用它实例的方法。