Runloop是和线程之间有一定关联的基础框架。作为事件处理循环,它用于协调接收传入事件和调度工作。Runloop的目的是让线程在有事可做的情况下忙碌并在无事的时候进入休眠状态。
Runloop管理并不是完全自动的,在适当地时候它仍然需要我们去设计相应的线程代码来响应传入事件。Cocoa和Core Foundation都提供了Runloop对象,该对象用于配置和管理线程的Runloop。程序并不需要显示的创建Runloop对象,每个线程(包括主线程)都有与之关联的Runloop。在程序启动过程中app会自动的创建和运行主线程的Runloop,但是在次级线程中需要明确地去运行它们的Runloop。
本人总结TIPS
- 程序不需要显示的创建Runloop对象,在主线程会自动的运行它相关联的Runloop对象,但是在次级线程需要手动运行。