1. 程式人生 > >runtime和runloop的個人理解

runtime和runloop的個人理解

二義性 程序 個人理解 cto 就會 語言 vps 主動 啟動不了

RunTime簡稱運行時。就是系統在運行的時候的一些機制,其中最主要的是消息機制。對於C語言,函數的調用在編譯的時候會決定調用哪個函數( C語言的函數調用請看這裏 )。編譯完成之後直接順序執行,無任何二義性。OC的函數調用成為消息發送。屬於動態調用過程。在編譯的時候並不能決定真正調用哪個函數(事實證明,在編譯階段,OC可以調用任何函數,即使這個函數並未實現,只要申明過就不會報錯。而C語言在編譯階段就會報錯)。只有在真正運行的時候才會根據函數的名稱找到對應的函數來調用。

沒有runloop程序就啟動不了

RunLoop運行循環 讓線程一直處於運行狀態,當有事件的時候,激活線程並處理事件,沒有事件的時候讓線程處於休眠狀態節約cpu提高程序性能。主線程的runloop默認創建,子線程需要主動創建。

什麽情況下用runloop,定時器nstimer 和某些特定的函數;nstimer在主線程中執行就不需要自己創建runloop,在非主線程中執行就需要手動開啟runloop,否則子線程執行完了之後就就退出線程,導致定時器沒法正常工作;perfomselector(消息傳遞),延時操作

runtime和runloop的個人理解