当您使用
async它时,可以使调用队列继续前进,而不必等到执行分派的块。相反,
sync将使调用队列停止并等待,直到您在块中分派的工作完成为止。因此
sync容易导致死锁。尝试
DispatchQueue.main.sync从主队列中运行,该应用将冻结,因为调用队列将一直等待,直到分派的块结束,但它甚至无法启动(因为该队列已停止并正在等待)
什么时候使用
sync?当您需要等待在不同队列上完成的事情然后才继续在当前队列上工作时
使用同步的示例:
在串行队列上,可以将其
sync用作互斥体,以确保只有一个线程能够同时执行受保护的代码段。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)