菜鸟教程小白 发表于 2022-12-12 11:46:53

ios - dispatch_barrier_async 似乎对全局队列没有影响?


                                            <p><p>当我尝试 GCD 函数 <code>dispatch_barrier_async</code> 时,它在 <code>dispatch_queue_create</code> 创建的队列上按预期工作,而当我将它放在 <code> 创建的全局队列上时dispatch_get_global_queue</code>,屏障似乎不再起作用了= =,有人可以解释一下吗?谢谢~
<a href="http://i.stack.imgur.com/UlKXQ.png" rel="noreferrer noopener nofollow">the demo image</a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这并不奇怪,这是记录在案的行为。</p>

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

<p>文档位于 <a href="https://developer.apple.com/reference/dispatch/1452797-dispatch_barrier_async" rel="noreferrer noopener nofollow">https://developer.apple.com/reference/dispatch/1452797-dispatch_barrier_async</a> </p>

<p>其中规定:</p>

<blockquote>
<p>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.</p>
</blockquote></p>
                                   
                                                <p style="font-size: 20px;">关于ios - dispatch_barrier_async 似乎对全局队列没有影响?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38683113/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38683113/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - dispatch_barrier_async 似乎对全局队列没有影响?