前言:

     前天學(xué)了IOS的NSOperation基本使用,我們得知NSOperation也是基于IOS GCD(Grand Central Dispatch)實(shí)現(xiàn),其實(shí)在做IOS開(kāi)發(fā)中GCD已經(jīng)基本上能夠滿(mǎn)足大部分需求。作為IOS開(kāi)發(fā)工程師很有必要對(duì)GCD做個(gè)全面了解,今天一邊寫(xiě)demo一邊對(duì)比總結(jié)一下GCD使用。

了解GCD

    GCD是Grand Central Dispatch的簡(jiǎn)稱(chēng),它是基于C語(yǔ)言的。如果使用GCD,完全由系統(tǒng)管理線(xiàn)程,我們不需要編寫(xiě)線(xiàn)程代碼。只需定義想要執(zhí)行的任務(wù),然后添加到適當(dāng)?shù)恼{(diào)度隊(duì)列(dispatch queue)。GCD會(huì)負(fù)責(zé)創(chuàng)建線(xiàn)程和調(diào)度你的任務(wù),系統(tǒng)直接提供線(xiàn)程管理。

執(zhí)行方式

    使用線(xiàn)程就離不開(kāi)線(xiàn)程隊(duì)列的執(zhí)行方式和任務(wù)的執(zhí)行方式,大致分以下幾個(gè):

  • 串行(Serial):讓任務(wù)一個(gè)接著一個(gè)地執(zhí)行(一個(gè)任務(wù)執(zhí)行完畢后,再執(zhí)行下一個(gè)任務(wù))

  • 并行(Concurrent):可以讓多個(gè)任務(wù)并發(fā)(同時(shí))執(zhí)行(自動(dòng)開(kāi)啟多個(gè)線(xiàn)程同時(shí)執(zhí)行任務(wù))并發(fā)功能只有在異步(dispatch_async)函數(shù)下才有效。

  • 同步(Synchronous):在當(dāng)前線(xiàn)程中執(zhí)行任務(wù),不具備開(kāi)啟新線(xiàn)程的能力

  • 異步(Asynchronous):在新的線(xiàn)程中執(zhí)行任務(wù),具備開(kāi)啟新線(xiàn)程的能力

調(diào)度隊(duì)列

    上面了解到Dispatch 通過(guò)分發(fā)開(kāi)發(fā)者提供的不同queue來(lái)調(diào)度任務(wù),我們來(lái)看下GCD有哪些隊(duì)列。

  • 隊(duì)列類(lèi)型創(chuàng)建方式

    主線(xiàn)程串行隊(duì)列(mian)

    dispatch_get_main_queue();

    延伸閱讀

    學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

    我想了解如何學(xué)習(xí)

    姓名:
    手機(jī):
    留言:
     
          1. <label id="1zn38"></label>