您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

DispatchQueue.main.async和DispatchQueue.main.sync之间的区别

DispatchQueue.main.async和DispatchQueue.main.sync之间的区别

当您使用async它时,可以使调用队列继续前进,而不必等到执行分派的块。相反,sync将使调用队列停止并等待,直到您在块中分派的工作完成为止。因此sync容易导致死锁。尝试DispatchQueue.main.sync从主队列中运行,该应用将冻结,因为调用队列将一直等待,直到分派的块结束,但它甚至无法启动(因为该队列已停止并正在等待)

什么时候使用sync?当您需要等待在不同队列上完成的事情然后才继续在当前队列上工作时

使用同步的示例:

在串行队列上,可以将其sync用作互斥体,以确保只有一个线程能够同时执行受保护的代码段。

其他 2022/1/1 18:16:02 有571人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶