當他們被放在一個併發隊列中時(雖然我理解了這個概念!),我對dispatch_sync
,dispatch_async
,dispatch_barrier_sync
和dispatch_barrier_async
的執行順序有點困惑。在iOS中調度併發隊列
我在我的iOS框架中有一個自定義的併發隊列。因此,如果塊被插入以下列順序,如:
CustomConcurrentQueue - >
- dispacth_sync塊
- dispatch_barrier_sync方框
- dispatch_async方框
- dispatch_async_barrier塊
- dispatch_sync_barrier塊
- 迪帕tch_sync塊。
什麼是執行順序。任何人都可以解釋清楚嗎?謝謝。
當您有兩個塊異步調度(無障礙)到併發隊列時,它們的完成順序不能保證(顯然是因爲它們併發運行)。但是,在列出的所有場景中,通過一種機制或另一種機制阻止併發執行(通過使用障礙,同步調度或兩者兼而有之),因此這六個調度任務將按照您調度的順序運行。 – Rob