key*_*ind 5 queue concurrency dispatch ios
正如Apple的文档所说,dispatch_get_global_queue()是并发队列,dispatch_sync是串行的意思.那么任务是处理异步还是同步?
mat*_*way 33
您在队列是什么以及异步与同步意味着什么之间感到困惑.
队列是可以在其上运行块的实体.这些可以是串行或并发的.串行意味着如果你按照A,B,C,D的顺序放置块,那么它们将被执行A,然后是B,然后是C,然后是D.并发意味着这些相同的块可能以不同的顺序执行,并且可能甚至多于一个(假设您有多个核心可以运行,显然).
然后进入异步vs同步.异步意味着当您调用时dispatch_async,它将立即返回,并且该块将在队列中排队.同步意味着当您调用dispatch_sync它时,它将仅在块执行完毕后返回.
因此,要完全回答您的问题,如果您dispatch_sync进入全局并发队列,则此块将运行,可能与该队列上的其他块并行运行,但是以同步方式运行 - 即在块完成之前它不会返回.
| 归档时间: |
|
| 查看次数: |
3869 次 |
| 最近记录: |