RunLoop

2021-09-03  本文已影响0人  Sharif_su

RunLoop和线程的关系:

  1. RunLoop 的作用就是来管理线程的,当线程的 RunLoop开启后,线程就会在执行完任务后,处于休眠状态,随时等待接受新的任务,而不是退出。

2.只有主线程的RunLoop是默认开启的,所以程序在开启后,会一直运行,不会退出。其他线程的RunLoop如果需要开启,需要手动开启

  1. RunLoop与线程是一一对应的,一个runloop对应一个核心的线程,为什么说是核心的,是因为runloop是可以嵌套的,但是核心的只能有一个,他们的关系保存在一个全局的字典里

  2. RunLoop在第一次获取时被创建,在线程结束时被销毁。对于主线程来说,RunLoop在程序一启动就默认创建好了。

5.对于子线程来说,RunLoop是懒加载的,只有当我们使用的时候才会创建,所以在子线程用定时器要注意:确保子线程的RunLoop被创建和开启,不然定时器不会回调

RunLoop的mode作用是什么?:

1.model 主要是用来指定事件在运行循环中的优先级的,分为:

2.苹果公开提供的 Mode有两个:

  1. NSDefaultRunLoopMode(kCFRunLoopDefaultMode)
  2. NSRunLoopCommonModes(kCFRunLoopCommonModes)
上一篇 下一篇

猜你喜欢

热点阅读