解析:關于為什么要,我覺得runloop是來管理線程的,當線程的runloop被開啟后,線程會在執行完任務后進入休眠狀態,有了任務就會被喚醒去執行任務。
關于這兩者的更多關系:
- runloop與線程是一一對應的,一個runloop對應一個核心的線程,為什么說是核心的,是因為runloop是可以嵌套的,但是核心的只能有一個,他們的關系保存在一個全局的字典里。
- runloop在第一次獲取時被創建,在線程結束時被銷毀。
- 對于主線程來說,runloop在程序一啟動就默認創建好了。
- 對于子線程來說,runloop是懶加載的,只有當我們使用的時候才會創建,所以在子線程用定時器要注意:確保子線程的runloop被創建,不然定時器不會回調。
更多:iOS面試題合集