iOS中的RunLoop

 

iOS中的RunLoopoop

使用場景線程

 

1.保持線程的存活,而不是線性的執行完任務就退出了orm

<1>不開啓RunLoop的線程server

<2>開啓RunLoop的線程文檔

(1)實驗用self來持有子線程form

(2)實驗讓線程不結束任務致使進入死亡狀態]循環

(3)Event Loop模式方法

(4)初步嘗試使用RunLoopim

(5)初體驗產生的疑問思考

①爲何老是要把RunLoop和線程放在一塊兒來說?

②如何建立RunLoop?

③線程默認不開啓RunLoop,爲何咱們的App或者說主線程卻能夠一直運行而不會結束?

④RunLoop能正常運行的條件是什麼?

⑤除了[runLoop run]還有那些方法啓動RunLoop?

(6)初體驗結論

 

2.保持線程的存活後,讓線程在咱們須要的時候響應消息。

 

3.讓線程定時執行某任務(Timer)

<1>初識NSTimer遇到的坑

<2>使用NSTimer遇到的坑

<3>NSTimer致使的ViewController沒法釋放問題

<4>performSelecter:afterDelay:

 

4.監聽Observer達到一些目的

關於RunLoop的釋放問題(RunLoop帶autoreleasepool的正確寫法)

<1>分析

<2>須要用while循環控制的RunLoop

<3>不須要用while循環控制的RunLoop

<4>關於主線程中autoreleasepool的題外話

 

關於子線程RunLoop切換Mode的思考

 

本文最大幹貨,子線程中模擬主線程DefaultMode與TrackingMode的切換,長代碼預警

參考文檔

<1>RunLoop

<2>autoreleasepool

相關文章
相關標籤/搜索