前言:

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

了解GCD

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

執(zhí)行方式

    使用線程就離不開線程隊列的執(zhí)行方式和任務(wù)的執(zhí)行方式,大致分以下幾個:

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

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

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

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

調(diào)度隊列

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

  • 隊列類型創(chuàng)建方式

    主線程串行隊列(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),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

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

    姓名:
    手機(jī):
    留言:
     

      1. <ul id="n1fus"></ul>