1.線程和進(jìn)程的區(qū)別
進(jìn)程是應(yīng)用程序,是操作系統(tǒng)的基本結(jié)構(gòu),用來管理資源匾嘱。
線程是程序用來處理任務(wù)的,一個進(jìn)程可以有一個或多個線程早抠。
2.多線程
一個CPU只能同時處理一個線程霎烙,但是可以快速切換線程,造成同時處理多個線程的假象。
3.串行隊列與并發(fā)隊列
串行是指多個線程按順序執(zhí)行
并發(fā)是指多個線程同時執(zhí)行悬垃,其實就是CPU在多個線程中快速切換
4.同步與異步
同步是指任務(wù)一項接著一項完成游昼,前面一個任務(wù)處理完以后才會處理下一個任務(wù),不開啟新線程尝蠕。
異步是指同時處理多個任務(wù)烘豌,互不干擾,開啟新線程看彼。
5.實現(xiàn)多線程的四種方法
(1)pthread
(2)NSThread
(3)GCD
(4)NSOperation
6.GCD
GCD 是基于NSThread進(jìn)行封裝
GCD 有3中隊列廊佩,全局并發(fā)隊列 dispatch_get_global_queue(0,0) 主隊列dispatch_get_main_queue() , 其他隊列 dispatch_queue_create(0,0)
其中dispatch_get_global_queue(0,0)是全局并發(fā)隊列,方便使用靖榕。并發(fā)隊列可以同時多個線程一起執(zhí)行标锄、
dispatch_get_main_queue() 是給串行隊列,用來給主線程用的
dispatch_queue_create(0,0) 可以根據(jù)傳的參數(shù)來確定隊列是串行隊列DISPATCH_QUEUE_SERIAL或者并行隊列DISPATCH_QUEUE_CONCURRENT
所以有3種隊列茁计,2中線程執(zhí)行方式料皇,就有了6中組合
1.串行同步 —— 任務(wù)一件一件按順序處理,不開啟新的線程
2.串行異步 —— 任務(wù)一件一件按順序處理星压,開啟新線程
3.并行同步 —— 雖然是并行践剂,但是因為是同步的,任務(wù)仍然按順序進(jìn)行租幕,開啟新的線程
4.并行異步 —— 任務(wù)交叉進(jìn)行舷手,互不干擾,開啟新的線程
5.主隊列同步 —— 主隊列比較特殊劲绪,由于主隊列存在一個syncMain的線程男窟,當(dāng)其他線程加進(jìn)隊列來以后,線程需要等syncMain執(zhí)行完畢才會執(zhí)行新加入的線程贾富,而新線程會等待syncMain處理完畢才會執(zhí)行下一個線程歉眷,由此造成線程死鎖進(jìn)而程序崩潰
6.主隊列異步 —— 任務(wù)交叉進(jìn)行,互不干擾颤枪,開啟新的線程
GCD 梳理
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門女阀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宅荤,“玉大人,你說我怎么就攤上這事浸策》爰” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵庸汗,是天一觀的道長惫确。 經(jīng)常有香客問我,道長蚯舱,這世上最難降的妖魔是什么雕薪? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮晓淀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盏档。我一直安慰自己凶掰,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布蜈亩。 她就那樣靜靜地躺著懦窘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稚配。 梳的紋絲不亂的頭發(fā)上畅涂,一...
- 文/蒼蘭香墨 我猛地睜開眼尊流,長吁一口氣:“原來是場噩夢啊……” “哼帅戒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起崖技,我...
- 正文 年R本政府宣布顶霞,位于F島的核電站,受9級特大地震影響锣吼,放射性物質(zhì)發(fā)生泄漏选浑。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一玄叠、第九天 我趴在偏房一處隱蔽的房頂上張望古徒。 院中可真熱鬧,春花似錦读恃、人聲如沸隧膘。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽疹吃。三九已至,卻和暖如春西雀,著一層夾襖步出監(jiān)牢的瞬間萨驶,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
- 前言 各路大神對GCD的原理解析和使用方法網(wǎng)上到處都是,可以輕松搜索到娘侍。那為什么筆者還要自己動手寫一篇所謂的"葵花...
- 原文:http://www.cocoachina.com/ios/20170707/19769.html 本文主要...