1. 程式人生 > >多線程之pthread, NSThread, NSOperation, GCD

多線程之pthread, NSThread, NSOperation, GCD

read 技術 線程的生命周期 難度 利用 功能 替換 nop 簡單

關於多線程會有一系列如下:
多線程之概念解析

多線程之pthread, NSThread, NSOperation, GCD

多線程之NSThread

多線程之NSOperation

多線程之GCD



pthread
:跨平臺,適用於多種操作系統,可移植性強,是一套純C語言的通用API,且線程的生命周期需要程序員自己管理,使用難度較大,所以在實際開發中通常不使用。

NThread:是蘋果對pthread的一個封裝。通過封裝可以在Cocoa環境中,可以更簡易地用多線程。線程的生命周期由程序員管理。每個NSThread對象對應一個線程,真正最原始的線程。

1)優點:NSThread 輕量級最低,相對簡單。

2)缺點:手動管理所有的線程活動,如生命周期、線程同步、睡眠等

NSOperation:基於OC語言API,底層是GCD,增加了一些更加簡單易用的功能,使用更加面向對象。線程的生命周期由系統自動管理。

1)優點:自帶線程周期管理,操作上可更註重自己邏輯。

2)缺點:面向對象的抽象類,只能實現它或者使用它定義好的兩個子類:NSInvocationOperation 和 NSBlockOperation

GCD:ios4.0以後才出現的,基於C語言的API,充分利用設備的多核,旨在替換NSThread等線程技術。線程的生命周期由系統自動管理。
1)優點:最高效,避開並發陷阱。
2)缺點:基於C實現。


多線程之pthread, NSThread, NSOperation, GCD