首頁>Club>
6
回覆列表
  • 1 # 燁卿影視剪輯

    Dispatch 方法詳解

    Dispatch_queue

    dispatch_queue是一種執行處理的等待對列。按照追加順序(FIFO)執行處理。

    dispatch_queue分為兩種,一種是等待當前正在處理的任務完成後再執行下一個任務,每次只執行一個任務,按 照順序執行,稱為Serial Dispatch Queue,另一種就是不等待,意思就是不管當前的任務是否執行完畢都開始執 行下一個任務,任務併發執行,稱為Concurrent Dispatch Queue.

    當變數queue為Concurrent Dispatch Queue時,雖然不用等待處理結束,就可以並行執行多個任務。但並行執行 的處理數量取決於當前的系統的狀態。系統只生成所需的執行緒執行處理,處理結束後,系統會結束不需要的執行緒。

    兩種形式的queue根據使用者需求來定義,如果希望按順序執行,那麼就建立Serial Dispatch Queue,如果希望並行 執行,並且執行順序無關重要,那麼就可以使用Concurrent Dispatch Queue。

    /////////////////////////

    ////第一個引數為queue的名稱,命名規則為FQDN,應用名稱ID的倒序+queue名字

    ////第二個引數為Null 建立Serial dispatch queue; 如果為DISPATCH_QUEUE_CONCURRENT 則建立的是Concurrent queue;

    //序列佇列

    dispatch_queue_t mySerialQueue = dispatch_queue_create("com.cnblogs.yybz.gcd.serialQueue",NULL);

    dispatch_async(mySerialQueue, ^{

    NSLog(@"hello GCD");

    });

    //並行佇列

    dispatch_queue_t myConcurrentQueue = dispatch_queue_create("com.cnblogs.yybz.gcd.concurrentQueue", DISPATCH_QUEUE_CONCURRENT);

    dispatch_async(myConcurrentQueue,^{

    NSLog(@"hello");

    });

  • 中秋節和大豐收的關聯?
  • 日語中也的用法?