GCD 在swift中的使用

##GCD簡單介紹

1饵沧、Dispatch Semaphores:信號量孕荠,可以讓我們實現(xiàn)更加復(fù)雜的并發(fā)控制,防止資源競爭

2牙瓢、三種隊列的獲取方式

串行隊列:系統(tǒng)默認(rèn)并不提供串行隊列毡代,需要我們手動創(chuàng)建

let queue = DispatchQueue(label: "serialQueue")

并行隊列:這里只討論系統(tǒng)提供的全局隊列阅羹。在 iOS >= 8 之后,優(yōu)先級的概念被蘋果使用 QoS 替代了月趟,我們不再使用優(yōu)先級灯蝴,而是使用 QoS 來描述全局隊列。我們將 QoS 傳入 global() 方法孝宗,實際上就像指定它的優(yōu)先級穷躁。當(dāng)然你也可以不指定,默認(rèn)就是 default因妇。

主隊列:請避免在主線程指定同步任務(wù)问潭,否則你的主線程可能會鎖死

3、我們自己創(chuàng)建的隊列與系統(tǒng)隊列有什么不同婚被?

事實上狡忙,我們自己創(chuàng)建的隊列,最終會把任務(wù)分配到系統(tǒng)提供的主隊列和四個全局的并行隊列中址芯,這種操作叫做Target queues灾茁。具體說窜觉,我們創(chuàng)建的串行隊列的target queue就是系統(tǒng)的主隊列,我們創(chuàng)建的并行隊列的target queue默認(rèn)是系統(tǒng)default優(yōu)先級的全局并行隊列北专。所有放在我們創(chuàng)建的隊列中的任務(wù)禀挫,最終都會到target queue中完成真正的執(zhí)行。那豈不是自己創(chuàng)建對列就沒什么意義了拓颓? 其實不是的语婴,通過我們自己創(chuàng)建的隊列,以及dispatch_set_target_queue 和 barrier 等操作驶睦,可以實現(xiàn)比較復(fù)雜的任務(wù)之間的同步砰左。

4、同步和異步添加任務(wù)场航,與隊列是串行隊列還是并行隊列沒有關(guān)系缠导。可以同步地給并行隊列添加任務(wù)旗闽,也可以異步地給串行隊列添加任務(wù)酬核。同步和異步添加只影響是不死阻塞當(dāng)前線程,和任務(wù)的串行和并行執(zhí)行沒有關(guān)系适室。

##Dispatch Group

1. group里的任務(wù) 串行執(zhí)行

2. group里的任務(wù)并行執(zhí)行(注意: 1 是在主線程中 而2 是在系統(tǒng)的global線程中)

3. 用wait()監(jiān)聽group中任務(wù)執(zhí)行完畢? 在并發(fā)執(zhí)行中不可靠

When usingdispatch_group_asyncto call methods that are, themselves, asynchronous, the group will finish as soon as all of the asynchronous tasks have started, but will not wait for them to finish. Instead, you can manually calldispatch_group_enterbefore you make the asynchronous call, and then calldispatch_group_leavewhen the asynchronous call finish. Thendispatch_group_waitwill now behave as expected.


4. 用enter,leave举瑰, notice 方法 監(jiān)聽group中任務(wù)執(zhí)行完畢



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捣辆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子此迅,更是在濱河造成了極大的恐慌汽畴,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耸序,死亡現(xiàn)場離奇詭異忍些,居然都是意外死亡,警方通過查閱死者的電腦和手機坎怪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門罢坝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搅窿,你說我怎么就攤上這事嘁酿。” “怎么了男应?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵闹司,是天一觀的道長。 經(jīng)常有香客問我沐飘,道長游桩,這世上最難降的妖魔是什么牲迫? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮借卧,結(jié)果婚禮上恩溅,老公的妹妹穿的比我還像新娘。我一直安慰自己谓娃,他們只是感情好脚乡,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滨达,像睡著了一般奶稠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捡遍,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天锌订,我揣著相機與錄音,去河邊找鬼画株。 笑死辆飘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谓传。 我是一名探鬼主播蜈项,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼续挟!你這毒婦竟也來了紧卒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诗祸,失蹤者是張志新(化名)和其女友劉穎跑芳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體直颅,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡博个,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了功偿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盆佣。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脖含,靈堂內(nèi)的尸體忽然破棺而出罪塔,到底是詐尸還是另有隱情,我是刑警寧澤养葵,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布征堪,位于F島的核電站,受9級特大地震影響关拒,放射性物質(zhì)發(fā)生泄漏佃蚜。R本人自食惡果不足惜庸娱,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谐算。 院中可真熱鬧熟尉,春花似錦、人聲如沸洲脂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恐锦。三九已至往果,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間一铅,已是汗流浹背陕贮。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留潘飘,地道東北人肮之。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像卜录,于是被迫代替她去往敵國和親戈擒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容