多線程
什么是多線程
- 1個進(jìn)程中可以開啟多條線程,每條線程可以并行(同時)執(zhí) 行不同的任務(wù)
- 進(jìn)程 -> 車間,線程 -> 車間工人
- 多線程技術(shù)可以提高程序的執(zhí)行效率
多線程的原理
- 同一時間,CPU只能處理1條線程,只有1條線程在工作(執(zhí)行)
- 多線程并發(fā)(同時)執(zhí)行,其實(shí)是CPU快速地在多條線程之間調(diào)度(切換)
- 如果CPU調(diào)度線程的時間足夠快,就造成了多線程并發(fā)執(zhí)行的假象
IOS中的多線程
- IOS程序運(yùn)行之后,會開啟1條默認(rèn)的線程,稱之為“主線程”或者叫"UI線程"
- 主線程的主要作用
- 顯示頁面,刷新頁面
- 處理UI事件(例如點(diǎn)擊事件)
IOS中實(shí)現(xiàn)多線程的幾種技術(shù)
- pthread
- 跨平臺,可移植,但是使用難度稍大,適用于多種平臺,是一套通用的的多線程API
- 語言:C
- 線程聲明周期:程序員管理
- NSThread
- 面向?qū)ο蟮?比較易用的多線程技術(shù)
- 語言:OC
- 線程聲明周期:程序員管理
- GCD
- 可以充分利用現(xiàn)在的多核設(shè)備,是現(xiàn)在IOS比較常用的多線程技術(shù)
- 語言:C
- 線程聲明周期:自動管理
- NSOperation
- 基于GCD,但是封裝成了OC語言的方法,更加面向?qū)ο?比GCD多了一些更簡單實(shí)用的功能
- 語言:OC
- 線程聲明周期:自動管理