据我所知,在并发队列中,以前的任务不会阻止后续任务的执行。那么为什么只打印“你好”,但是下面的代码中没有打印出单个“世界”?
day Hour Score
2017-01-01 00:00:00 0
...
2017-01-01 08:00:00 1
2017-01-01 09:00:00 2
2017-01-01 10:00:00 0
2017-01-01 11:00:00 3
2017-01-01 12:00:00 0
2017-01-01 13:00:00 0
2017-01-01 14:00:00 4
2017-01-01 15:00:00 5
2017-01-01 16:00:00 0
...
2017-01-01 23:00:00 0
答案 0 :(得分:-1)
因为您只给了要执行的队列一个工作项。它永远地循环打印"你好",然后循环永远打印"世界"。显然,它永远不会到处打印世界"
如果您希望这两个操作同时发生,那么您需要提交到单独的工作项:
let concurrentQueue = DispatchQueue(label: "test", attributes: .concurrent)
concurrentQueue.async {
while true {
print("hello")
sleep(1)
}
}
concurrentQueue.async {
while true {
print("world")
sleep(1)
}
}