OStack程序员社区-中国程序员成长平台

标题: ios - dispatch_barrier_async 似乎对全局队列没有影响? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:46
标题: ios - dispatch_barrier_async 似乎对全局队列没有影响?

当我尝试 GCD 函数 dispatch_barrier_async 时,它在 dispatch_queue_create 创建的队列上按预期工作,而当我将它放在 创建的全局队列上时dispatch_get_global_queue,屏障似乎不再起作用了= =,有人可以解释一下吗?谢谢~ the demo image



Best Answer-推荐答案


这并不奇怪,这是记录在案的行为。

如果您使用它向您自己创建的队列添加一个 block ,那么它将阻止所有其他 block ,直到它完成。如果将它添加到公共(public)队列,那么它的行为就像 dispatch_async

文档位于 https://developer.apple.com/reference/dispatch/1452797-dispatch_barrier_async

其中规定:

The queue you specify should be a concurrent queue that you create yourself using the dispatch_queue_create function. If the queue you pass to this function is a serial queue or one of the global concurrent queues, this function behaves like the dispatch_async function.

关于ios - dispatch_barrier_async 似乎对全局队列没有影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683113/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4