【发布时间】:2018-11-14 05:56:15
【问题描述】:
这段代码会死锁,因为:
- 他们在同一个线程中
- print(2) 必须等待 print(3)
- print(3) 必须等待 print(2)
例如:
DispatchQueue.main.async {
print(Thread.current)
DispatchQueue.main.sync {
print(Thread.current)
print(2)
}
print(3)
}
为什么在concurrentQueue 不会造成死锁?它们也在同一个线程中。
DispatchQueue.global().async {
print(Thread.current)
DispatchQueue.global().sync {
print(Thread.current)
print(2)
}
print(3)
}
【问题讨论】:
标签: ios concurrency grand-central-dispatch deadlock