RunLoop

1、什么是RunLoop

  RunLoop 是通过内部维护的事件循环来对事件/消息进行管理的一个对象(有事时候做事,没事的时候休息)。
·事件循环是什么?
  a、没有消息需要处理时,休眠以避免资源占用。
  b、有消息需要处理时,立刻被唤醒。
这两点都是通过事件循环来实现的。
 维护的事件循环可以用来不断的处理消息/事件,然后对他们进行管理同时当没有消息需要处理时,休眠以避免资源占用(由用户态 ——>内核态的切换);有消息需要处理时,立刻被唤醒。(由内核态 ——>用户态的切换)

.为什么main函数能保持不退出?
在main函数中它调用的了UIApplicationMain,而
在UIApplicationMain这个函数内部会启动一个主线程的RunLoop,而RunLoop又是一个对事件循环的维护机制,
可以做到有事情做时候做事,
没有事做时候可以通过用户态到内核态的切换进行休眠以避免资源占用。当前线程是处于一个休眠状态.

你可能感兴趣的:(RunLoop)