gcd知識點(diǎn)

1.dispatch_after 工作起來就像一個延遲版的 dispatch_async 。你依然不能控制實(shí)際的執(zhí)行時間,且一旦 dispatch_after 返回也就不能再取消它。
不知道何時適合使用 dispatch_after ?
自定義串行隊(duì)列:在一個自定義串行隊(duì)列上使用 dispatch_after 要小心。你最好堅(jiān)持使用主隊(duì)列。
主隊(duì)列(串行):是使用 dispatch_after 的好選擇;Xcode 提供了一個不錯的自動完成模版。
并發(fā)隊(duì)列:在并發(fā)隊(duì)列上使用 dispatch_after 也要小心;你會這樣做就比較罕見。還是在主隊(duì)列做這些操作吧。
2.并發(fā)和并行通常被一起提到,所以值得花些時間解釋它們之間的區(qū)別。
并發(fā)代碼的不同部分可以“同步”執(zhí)行。然而,該怎樣發(fā)生或是否發(fā)生都取決于系統(tǒng)。多核設(shè)備通過并行來同時執(zhí)行多個線程;然而,為了使單核設(shè)備也能實(shí)現(xiàn)這一點(diǎn),它們必須先運(yùn)行一個線程,執(zhí)行一個上下文切換,然后運(yùn)行另一個線程或進(jìn)程。這通常發(fā)生地足夠快以致給我們并發(fā)執(zhí)行地錯覺.雖然你可以編寫代碼在 GCD 下并發(fā)執(zhí)行,但 GCD 會決定有多少并行的需求。并行要求并發(fā),但并發(fā)并不能保證并行。
3.在何時以及何處使用 dispatch_sync :
自定義串行隊(duì)列:在這個狀況下要非常小心!如果你正運(yùn)行在一個隊(duì)列并調(diào)用 dispatch_sync 放在同一個隊(duì)列,那你就百分百地創(chuàng)建了一個死鎖。
主隊(duì)列(串行):同上面的理由一樣,必須非常小心!這個狀況同樣有潛在的導(dǎo)致死鎖的情況。
并發(fā)隊(duì)列:這才是做同步工作的好選擇,不論是通過調(diào)度障礙,或者需要等待一個任務(wù)完成才能執(zhí)行進(jìn)一步處理的情況。
4.dispatch_suspend并不會立即暫停正在運(yùn)行的block,而是在當(dāng)前block執(zhí)行完成后,暫停后續(xù)的block執(zhí)行。
dispatch_set_target_queue小結(jié):
dispatch_set_target_queue可以更改Dispatch Queue優(yōu)先級。
dispatch_set_target_queue可以更改隊(duì)列的執(zhí)行層次,隊(duì)列里的任務(wù)將會按照目標(biāo)隊(duì)列(target Queue)
的隊(duì)列來處理

文/Dely(簡書作者)原文鏈接:http://www.lxweimin.com/p/2a614531187f著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標(biāo)注“簡書作者”。**

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 背景 擔(dān)心了兩周的我終于輪到去醫(yī)院做胃鏡檢查了!去的時候我都想好了最壞的可能(胃癌),之前在網(wǎng)上查的癥狀都很相似。...
    Dely閱讀 9,277評論 21 42
  • 簡介 GCD(Grand Central Dispatch)是在macOS10.6提出來的,后來在iOS4.0被引...
    sunmumu1222閱讀 901評論 0 2
  • GCD筆記 總結(jié)一下多線程部分,最強(qiáng)大的無疑是GCD,那么先從這一塊部分講起. Dispatch Queue的種類...
    jins_1990閱讀 789評論 0 1
  • 本篇博客共分以下幾個模塊來介紹GCD的相關(guān)內(nèi)容: 多線程相關(guān)概念 多線程編程技術(shù)的優(yōu)缺點(diǎn)比較? GCD中的三種隊(duì)列...
    dullgrass閱讀 37,913評論 30 236
  • iOS中GCD的使用小結(jié) 作者dullgrass 2015.11.20 09:41*字?jǐn)?shù) 4996閱讀 20199...
    DanDanC閱讀 902評論 0 0