semaphore 叫做信号量,用来控制最大线程并发数,也可以将信号量设置为1,也就是控制最大线程并发数为1,从而达到线程同步的目的。
如果多个耗时操作想让他们依次执行,使用如下:
let semaphore = DispatchSemaphore(value: 1)
semaphore.wait()
DispatchQueue.global().async {
print("执行了任务1")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("执行了任务2")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("执行了任务3")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("执行了任务4")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("执行了任务5")
semaphore.signal()
}
网友评论