IOS GCD多執行緒 GCD 簡稱 Grand Central Dispatch ,利用在CPU(雙核,多核心的平行運算), 自動管理Thread的Liftcycle ,(創造執行緒,調度Task,消除執行緒),不用自己管理Thread。 GCD Objectivc-C 使用Block Swift 使用Closure Task & Queue Task: Operation ,一個程式區段,在GCD裡面就是Block或者Closure 有兩種操作模式: sync & async 差別在於是否創造 “新的Thread” 同步執行 同步操作會阻礙當前執行緒執行並等待,等當前執行緒完成才繼續執行 異步執行 異步操作,當前執行緒會繼續往下執行,不會阻礙執行緒 Queue Serial Queues(串行序列) 會進行FIFO(First in First out) Concurrent Queues(並行序列) 也是FIFO取出,但取出後會開啟多條執行緒直接取出又放到另外一個執行緒,由於取出動作很快,看起來所有任務同時執行,但是自根據系統資源控制並行數量,所以如果任務很多,不會同時讓任務一起執行。 Item sync async Serial Queues 執行緒,一個一個執行 其他執行緒,一個一個執行 Concurrent Queues 執行緒,一個一個執行 很多執行緒,同時執行 創造Queue Main Queue Create Queue Global Queue Main Queue mainqueue為自定義變數 /*OBJECTIVE-C*/ dispatch_queue_t mainqueue = dispatch_get_main_queue(); /*SWIFT*/ let mainqueue = dispatch_get_main_queue() Create Your Own Queue 自己可以創建串...
Comments
Post a Comment