首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >大中央调度异步vs同步

大中央调度异步vs同步
EN

Stack Overflow用户
提问于 2012-02-09 04:03:36
回答 2查看 14.3K关注 0票数 29

我正在阅读有关GCD调度队列的文档,里面说队列是FIFO,所以我想知道这对异步/同步调度有什么影响?

据我所知,async按照获取数据的顺序执行数据,而sync执行串行数据。

但是,当您编写GCD代码时,您决定了事情发生的顺序。因此,只要您知道代码中发生了什么,就应该知道代码执行的顺序。

我的问题是,异步的好处在哪里?我对这两件事的理解是不是遗漏了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-09 04:11:21

同步意味着函数将阻塞当前线程,直到它完成,异步意味着它将在后台处理,并且函数不会阻塞当前线程。

如果您想要串行执行块,请查看串行分派队列的创建

票数 21
EN

Stack Overflow用户

发布于 2012-02-09 14:15:31

不幸的是,第一个答案并不十分完整。是的,同步将阻塞,而异步将不会,但是还有其他语义需要考虑。调用dispatch_sync()还会导致您的代码等待,直到该队列上的每个挂起项都执行完毕,这也使它成为上述工作的同步点。dispatch_async()将简单地将工作提交到队列并立即返回,之后它将“在某个时刻”执行,您需要以其他方式跟踪该工作的完成情况(通常通过将一个dispatch_async嵌套在另一个dispatch_async中-例如,参见手册页)。

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9200558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档