1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| let queue = DispatchQueue(label: "queue", attributes: DispatchQueue.Attributes.concurrent) print("------ 开始 -------") queue.async { Thread.sleep(forTimeInterval: 3) print("------ async 1 -------") }
print("------ async 1 不阻塞 -------")
queue.async { print("------ async 2 -------") }
queue.sync { Thread.sleep(forTimeInterval: 5) print("------ sync 1 -------") }
print("------ 被 sync 1 阻塞 -------")
queue.async { print("------ async 3 -------") }
------ 开始 ------- ------ async 1 不阻塞 ------- ------ async 2 ------- ------ async 1 ------- ------ sync 1 ------- ------ 被 sync 1 阻塞 ------- ------ async 3 -------
|