ios - swift 中的异步和同步有什么区别

标签 ios swift asynchronous

在此示例中,queue.sync 之间有什么区别?和queue.async

var queue = DispatchQueue(label: "sample", qos: .background)

queue.sync {
   //some code
}
queue.async {
   //some code 
}

最佳答案

两个片段都将一个闭包附加到队列中。

但有一点不同。

同步

Synch 将等待闭包执行后再处理下一行。

因此,在这种情况下,print("Hello")总是在闭包之后执行。

queue.sync {
   //some code
}
print("Hello")

异步

在这种情况下,闭包被添加到队列中,然后执行下一行。因此 print("Hello") 可以在闭包之前执行。

queue.async {
   //some code
}
print("Hello")

关于ios - swift 中的异步和同步有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60084646/

相关文章:

ios - iOS 13.4 上未更改的 barTintColor UINavigationBar

node.js - 有没有办法从 node.js 同步调用 AWS Lambda?

c# - 调用 C# 的 await 的 .NET Windows 服务中的 I/O 回调是否可能不阻塞?

java - 使用 REST API 将 swift 3 webservice 多次数据插入数据库

ios - 在 Objective-C 项目中导入 Swift 框架 - 错误 - 未知类型名称

ios - libc++ for mac os中的可能错误,当字符串obj超出范围时,不调用字符串析构函数

c# - 创建永不返回的任务的最简洁方法是什么?

ios - 继续记录丢失的服务器连接以获取 kct 连接无效通知

swift - 自定义按钮在 Swift 中不起作用

ios - 无法使用 PureLayout 设置 ScrollView