多線程 <二>

25.3:GCD的隊列可以分為2大類型

并發(fā)隊列(Concurrent Dispatch Queue)

可以讓多個任務并發(fā)(同時)執(zhí)行(自動開啟多個線程同時執(zhí)行任務)

并發(fā)功能只有在異步(dispatch_async)函數下才有效

串行隊列(Serial Dispatch Queue)

讓任務一個接著一個地執(zhí)行(一個任務執(zhí)行完畢后肉津,再執(zhí)行下一個任務)

25.4: 有4個術語比較容易混淆:同步铆农、異步空民、并發(fā)、串行

同步和異步主要影響:能不能開啟新的線程

同步:在當前線程中執(zhí)行任務借浊,不具備開啟新線程的能力

異步:在新的線程中執(zhí)行任務,具備開啟新線程的能力

并發(fā)和串行主要影響:任務的執(zhí)行方式

并發(fā):多個任務并發(fā)(同時)執(zhí)行

串行:一個任務執(zhí)行完畢后萝招,再執(zhí)行下一個任務


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?并發(fā)隊列? ? ? ? ? ? ? 手動創(chuàng)建的串行隊列? ? ? ? ? ? ? 主隊列

? ? ? ? ? ? ? ? ? ? ? ? ? ?沒有開啟新線程? ? ? ? ? ?沒有開啟新線程? ? ? ? ? ? ? 沒有開啟新線程

同步(sync)? ? ? 串行執(zhí)行任務? ? ? ? ? ? ? 串行執(zhí)行任務? ? ? ? ? ? ? ? 串行執(zhí)行任務

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有開啟新線程? ? ? ? ? ? ? 有開啟新線程? ? ? ? ? ? ? ? 沒有開啟新線程

異步(async)? ? 并發(fā)執(zhí)行任務? ? ? ? ? ? ? ?串行執(zhí)行任務? ? ? ? ? ? ? ? 串行執(zhí)行任務


*使用sync函數往當前串行隊列中添加任務蚂斤,會卡住當前的串行隊列(產生死鎖)

25.4.1: 多線程的安全隱患

資源共享

1塊資源可能會被多個線程共享,也就是多個線程可能會訪問同一塊資源

比如多個線程訪問同一個對象槐沼、同一個變量曙蒸、同一個文件

當多個線程訪問同一塊資源時捌治,很容易引發(fā)數據錯亂和數據安全問題

25.5:OSSpinLock叫做”自旋鎖”,等待鎖的線程會處于忙等(busy-wait)狀態(tài)纽窟,一直占用著CPU資源

目前已經不再安全具滴,可能會出現優(yōu)先級反轉問題

如果等待鎖的線程優(yōu)先級較高,它會一直占用著CPU資源师倔,優(yōu)先級低的線程就無法釋放鎖

需要導入頭文件#import <libkern/OSAtomic.h>

25.3.1:mutex叫做”互斥鎖”构韵,等待鎖的線程會處于休眠狀態(tài)

需要導入頭文件#import <pthread.h>

25.6:自旋鎖、互斥鎖比較

1:什么情況使用自旋鎖比較劃算趋艘?

預計線程等待鎖的時間很短

加鎖的代碼(臨界區(qū))經常被調用疲恢,但競爭情況很少發(fā)生

CPU資源不緊張

多核處理器

2:什么情況使用互斥鎖比較劃算?

預計線程等待鎖的時間較長

單核處理器

臨界區(qū)有IO操作

臨界區(qū)代碼復雜或者循環(huán)量大

臨界區(qū)競爭非常激烈

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末瓷胧,一起剝皮案震驚了整個濱河市显拳,隨后出現的幾起案子,更是在濱河造成了極大的恐慌搓萧,老刑警劉巖杂数,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異瘸洛,居然都是意外死亡揍移,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門反肋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來那伐,“玉大人,你說我怎么就攤上這事石蔗『毖” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵养距,是天一觀的道長诉探。 經常有香客問我,道長棍厌,這世上最難降的妖魔是什么肾胯? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮定铜,結果婚禮上阳液,老公的妹妹穿的比我還像新娘。我一直安慰自己揣炕,他們只是感情好帘皿,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著畸陡,像睡著了一般鹰溜。 火紅的嫁衣襯著肌膚如雪虽填。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天曹动,我揣著相機與錄音斋日,去河邊找鬼。 笑死墓陈,一個胖子當著我的面吹牛恶守,可吹牛的內容都是我干的。 我是一名探鬼主播贡必,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼兔港,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仔拟?” 一聲冷哼從身側響起衫樊,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎利花,沒想到半個月后科侈,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡炒事,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年臀栈,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羡洛。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡挂脑,死狀恐怖,靈堂內的尸體忽然破棺而出欲侮,到底是詐尸還是另有隱情,我是刑警寧澤肋联,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布威蕉,位于F島的核電站,受9級特大地震影響橄仍,放射性物質發(fā)生泄漏棕洋。R本人自食惡果不足惜法褥,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧代赁,春花似錦、人聲如沸隧枫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锁孟。三九已至彬祖,卻和暖如春茁瘦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背储笑。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工甜熔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人突倍。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓腔稀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羽历。 傳聞我的和親對象是個殘疾皇子焊虏,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內容