Global Central Dispatch

教學連結

優先級:DispatchQoS

以前 GCD 的默認隊列優先級有四個:

現在改為了 QoSClass 列舉

  • 現在通常使用 QoS 為以下四種,從上到下優先級依次降低

    • User Interactive: 和用戶交互相關,比如動畫等等優先級最高。比如用戶連續拖拽的計算

    • User Initiated: 需要立刻的結果,比如push一個ViewController之前的數據計算

    • Utility: 可以執行很長時間,再通知用戶結果。比如下載一個文件,給用戶下載進度

    • Background: 用戶不可見,比如在後台存儲大量數據

semaphore

主要有三個 function

  • dispatch_semaphore_create : 建立 semaphore 並設定初始 count

  • dispatch_semaphore_wait : 等待信號,遇到時先將 count - 1。然後若 count < 0 則卡住線程給他等,直到 count >= 0 才放行

  • dispatch_semaphore_signal : 發送信號,將 count + 1

Last updated

Was this helpful?