1.在 iOS 編程中,這幾種狀況下須要處理多線程:UI 事件必須在主線程裏進行,其餘的能夠放在後臺進行;而進行一些耗時長或阻塞線程的任務,最後放進後臺線程裏進行。編程
2.iOS 的多線程技術有這麼幾種:線程,GCD 和 NSOperationQueue(操做隊列)。多線程
3.線程這種技術比較複雜,但線程有個後兩者沒有的優點:可以精確保證任務執行的時間。GCD 全稱是 Grand Central Dispatch, 是 libdispatch 這個庫的外部代號,基於 C 的底層來實現;而NSOperationQueue,通稱操做隊列,是基於 GCD 實現的。GCD 能作的 NSOperationQueue 基本上都能作,並且還有些 GCD 中不易實現的特性,如掛起、取消任務,雖然在 iOS 8 中,GCD 也提供了取消任務的功能,但在 GCD 中任務的掛起和取消都有較大的侷限性;雖然大多數狀況下應該使用抽象級別更高的 API,也就是 NSOperationQueue,但處理通常的後臺任務我偏心 GCD,主要是 GCD 搭配 Blcok 使用簡單,很是方便。spa