这段代码会死锁,因为:
例如:
DispatchQueue.main.async {
print(Thread.current)
DispatchQueue.main.sync {
print(Thread.current)
print(2)
}
print(3)
}
Run Code Online (Sandbox Code Playgroud)
为什么在concurrentQueue不会造成死锁?他们也在同一个线程中。
DispatchQueue.global().async {
print(Thread.current)
DispatchQueue.global().sync {
print(Thread.current)
print(2)
}
print(3)
}
Run Code Online (Sandbox Code Playgroud)