GCD(iOS)中的调度障碍队列

时间:2014-02-15 20:20:43

标签: ios multithreading grand-central-dispatch

我正在我的应用程序中创建多个并发队列。 dispatch_barrier_sync用于修改共享资源。

dispatch_barrier_sync只会在当前队列或所有队列中阻止并行执行吗?

例如,假设我有3个自定义并发队列“A”,“B”和“C”。如果我向“A”队列提交dispatch_barrier_sync块,它是否会阻止“B”和“C”的并行执行?或者仅在“A”中?

1 个答案:

答案 0 :(得分:2)

只有A.确实不会阻止任何事情。它将等到A中的所有任务完成。 B和C将照常工作,并可以调用他们的块。

https://developer.apple.com/library/mac/documentation/performance/reference/gcd_libdispatch_ref/Reference/reference.html#//apple_ref/c/func/dispatch_barrier_sync