NSRunLoop iOS

NSRunLoop是消息機制的處理模式

NSRunLoop的作用在于有事情做的時候使的當前NSRunLoop的線程工作,沒有事情做讓當前NSRunLoop的線程休眠

NSTimer默認添加到當前NSRunLoop中,也可以手動制定添加到自己新建的NSRunLoop

NSRunLoop就是一直在循環檢測,從線程start到線程end,檢測inputsource(如點擊,雙擊等操作)同步事件,檢測timesource同步事件,檢測到輸入源會執行處理函數,首先會產生通知,corefunction向線程添加runloop observers來監聽事件,意在監聽事件發生時來做處理。

在單線程的app中,不需要注意Run Loop,但不代表沒有。程序啟動時,系統已經在主線程中加入了Run Loop。它保證了我們的主線程在運行起來后,就處于一種“等待”的狀態(而不像一些命令行程序一樣運行一次就結束了),這個時候如果有接收到的事件(Timer的定時到了或是其他線程的消息),就會執行任務,否則就處于休眠狀態。

runloopmode是一個集合,包括監聽:事件源,定時器,以及需通知的runloop observers

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是Run Loops RunLoops是與線程相關聯的基礎部分,一個Run Loop就是事件處理循環,他是用來...
    傻傻小蘿卜閱讀 996評論 0 5
  • Runloop是iOS和OSX開發中非常基礎的一個概念,從概念開始學習。 RunLoop的概念 -般說,一個線程一...
    小貓仔閱讀 1,024評論 0 1
  • 先貼下 apple doc, 本文基本是對照 doc 的翻譯:https://developer.apple.co...
    brownfeng閱讀 6,923評論 8 111
  • 本文將從以下幾個部分來介紹多線程。 第一部分介紹多線程的基本原理。 第二部分介紹Run loop。 第三部分介紹多...
    曲年閱讀 1,287評論 2 14
  • 我說:寶貝,I love you.她回:I love you,2。我要怎么告訴她此too非彼two呢。 小屁孩:媽...
    時間用什么煮雨閱讀 317評論 0 0