Swift 异步编程:从阻塞到高效并发
1. 阻塞式睡眠方法的问题
在 Swift 编程中,我们常常会遇到需要暂停程序执行一段时间的情况。传统上,我们可能会使用 sleep() 函数或 Thread.sleep() 方法来实现这一目的,但这些方法存在严重的问题。
1.1 sleep() 函数
我们可以在 imageName() 方法中添加 sleep() 函数来模拟耗时操作:
extension SleepingEntryVendor {
private func imageName(for int: Int) -> String {
let number = int % 51
sleep(UInt32.random(in: 2...6))
return "\(number).circle"
}
}
这里的 sleep() 函数会让程序暂停 2 到 6 秒。值得注意的是,使用 sleep() 函数时,我们不需要将 imageName() 方法标记为 async ,这是因为 sleep() 是一个古老的 Darwin 函数,比 iOS 还要古老。
超级会员免费看
订阅专栏 解锁全文
951

被折叠的 条评论
为什么被折叠?



