runloop和線程有什么關系?


  • 每條線程都有唯一的一個RunLoop對象與之對應的
  • 主線程的RunLoop是自動創建並啟動
  • 子線程的RunLoop需要手動啟動
  • 子線程的RunLoop創建步驟如下:

    • 獲得RunLoop對象后要調用run方法來啟動一個運行循環

      // 啟動RunLoop [[NSRunLoop currentRunLoop] run]; 
    • RunLoop的其他啟動方法

      // 第一個參數:指定運行模式 // 第二個參數:指定RunLoop的過期時間,即:到了這個時間后RunLoop就失效了 [[NSRunLoop currentRunLoop] runMode:kCFRunLoopDefaultMode beforeDate:[NSDate distantFuture]];
  • RunLoop是來管理線程的,當線程的RunLoop被開啟后,線程會在執行完任務后進入休眠狀態,有了任務就會被喚醒去執行任務。
  • RunLoop在第一次獲取時被創建,在線程結束時被銷毀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM