Runloop和线程是紧密相连的,可以这样说Runloop是为了线程而生,没有线程,它就没有存在的必要。Runloop是线程的基础架构部分, Cocoa 和 CoreFundation 都提供了 Runloop对象方便配置和管理线程的Runloop。每个线程,包括程序的主线程( main thread )都有与之相应的Runloop 对象。
Runloop和线程的关系:
- Runloop是线程的基础架构部分
- 一条线程对应一个RunLoop对象,每条线程都有唯一一个与之对应的RunLoop对象。
- 我们只能在当前线程中操作当前线程的RunLoop,而不能去操作其他线程的RunLoop。
- RunLoop对象在第一次获取RunLoop时创建,销毁则是在线程结束的时候。
- 主线程的Runloop默认是启动的, 子线程的Runloop默认是不开启的,需要我们自己手动开启循环。
网友评论