1、多線程的分類
pthread
1怯邪、一套通用的多線程API
2绊寻、適用于Unix/Linux/Windows等系統(tǒng)
3花墩、跨平臺悬秉、可移植
4、使用難度大
5冰蘑、使用語言:C語言
6和泌、使用頻率:幾乎不適用
7、線程的生命周期:由開發(fā)者自己進行管理
NSThread
1祠肥、面向?qū)ο?/p>
2武氓、簡單易用,可直接操作線程
3仇箱、使用語言:OC語言
4县恕、使用頻率:偶爾使用
5、線程的生命周期:由開發(fā)者自己管理
GCD
1剂桥、替換NSThread等線程技術(shù)
2忠烛、充分利用了設(shè)備多核(自動)
3、使用語言:C語言
4权逗、使用頻率:經(jīng)常使用
5美尸、線程的生命周期:自動管理
NSOperation
1、基于GCD(底層是GCD)
2斟薇、比GCD多了一些簡單實用的功能
3师坎、使用更加面向?qū)ο?/p>
4、使用語言:OC語言
5堪滨、線程的生命周期:自動管理
多線程的原理:
????同一時間胯陋,CPU只能處理一條線程,只有一條線程在工作(執(zhí)行),多線程并發(fā)(同時)執(zhí)行惶岭,其實是CPU快速的在多條線程之間調(diào)度(切換),如果CPU調(diào)度線程的時間足夠快寿弱,就造成了多線程并發(fā)執(zhí)行的假象思考:如果線程足夠多,CPU會在N多條線程之間調(diào)度按灶,CPU會累死症革,消耗大量的CPU資源每條線程被調(diào)度的頻率會降低(線程的執(zhí)行效率降低)。
多線程的有點:
能適當提高程序的執(zhí)行效率鸯旁;
能適當提高資源利用率(CPU噪矛、內(nèi)存利用率)
多線程的缺點:
線程需要占用一定的內(nèi)存空間(默認情況下主線程占用1M子線程占用512k),如果開啟大量的線程铺罢,會占用大量的內(nèi)存空間艇挨,降低程序的性能,線程越多CPU在調(diào)度線程上的開銷就越大程序設(shè)計更加復雜:比如線程之間的通信韭赘、多線程的數(shù)據(jù)共享
GCD優(yōu)點:
GCD是一個輕量級的數(shù)據(jù)結(jié)構(gòu)缩滨,以底層實現(xiàn)隱藏的神奇技術(shù),我們可以通過GCD和block輕松實現(xiàn)多線程編程泉瞻,有時候脉漏,GCD相比其他系統(tǒng)提供的多線程方法更加有效。