如果任务产生不同的线程,Serial DispatchQueue 会等待吗

Will a Serial DispatchQueue wait if a task spawns a different thread

串行调度队列将一次执行一个任务。但是如果队列中有 task1 和 task2 怎么办。 task1 一个开始执行并调用一个带有完成块的函数(我假设它将使用不同的线程来执行)。此时,我相信 task1 将退出,即使尚未调用完成块。任务 2 是否有可能在任务 1 的完成块执行之前开始执行?

是的。在正常情况下,这正是会发生的情况。

如果您想等待某事完成后再继续,请研究 DispatchGroup