gpt4 book ai didi

ios - dispatch_sync(dispatch_get_global_queue(xxx), task) 是同步还是异步

转载 作者:可可西里 更新时间:2023-11-01 04:04:41 25 4
gpt4 key购买 nike

苹果的文档说,dispatch_get_global_queue()是并发队列,dispatch_sync是串行的意思,那么任务是异步处理还是同步处理?

最佳答案

您对什么是队列以及异步与同步的含义感到困惑。

队列是可以在其上运行 block 的实体。这些可以是串行的或并发的。串行意味着如果你按照 A、B、C、D 的顺序放置 block ,那么它们将被执行 A,然后是 B,然后是 C,然后是 D。并发意味着这些相同的 block 可能以不同的顺序执行,并且可能甚至不止一个同时运行(显然,假设您有多个要运行的内核)。

然后是异步与同步。 async 的意思是当你调用 dispatch_async 时,它会立即返回并且 block 会在队列中排队。同步意味着当您调用 dispatch_sync 时,它只会在 block 执行完毕后返回。

因此,为了完整回答您的问题,如果您 dispatch_sync 进入全局并发队列,那么该 block 将运行,可能与该队列上的其他 block 并行运行,但以同步方式 - 即它在 block 完成之前不会返回。

关于ios - dispatch_sync(dispatch_get_global_queue(xxx), task) 是同步还是异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com