-1

我很困惑串行队列和并发队列是什么。并发是否允许一堆操作在队列中,然后将它们拆分到可用的线程上,而串行是一样的,但将其限制为一个线程并一次等待一个线程完成?串行队列与并发队列有何不同?

文档中的解释看起来很混乱。

+0

您应该阅读Apple文档https://developer.apple.com/library/ios/DOCUMENTATION/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html –

回答

4

“串行”意味着提交给队列中的块被顺序地执行, 即第二块没有之前首先执行一个已经完成。 它确实是而不是表示块在同一个线程上执行。

“并发”是指提交给队列这些块可以执行 并行地(在不同的线程)。

在这两种情况下,GCD都使用“线程池”来执行块,因此您无法知道将在哪个线程上执行块。唯一的例外是 执行主线程上的所有块的“主队列”。