Runloop 和线程的区别?

vir*_*rus 2 objective-c nsthread nsrunloop

  • 什么是运行循环?
  • 和线程有什么区别?
  • 哪些地方需要使用 run loop,哪些地方不用?

9da*_*dan 5

RunLoop是一种循环机制。这是一种无限循环。

Thread是代码执行(线程)的概念模型。与循环或函数调用没有直接关系。它表示代码流。在内部,每个线程都有单独的堆栈帧。

存在主线程(一个且只有一个)。默认情况下,主线程执行主 runloop。

主 runloop 主要处理键盘和鼠标输入。无限等待输入事件并调用适当的事件处理程序。

可以创建另一个线程和另一个 runloop,用于后台处理非 UI 相关事件,例如异步套接字等。