semaphore 叫做信號量,用來控制最大線程并發(fā)數,也可以將信號量設置為1,也就是控制最大線程并發(fā)數為1,從而達到線程同步的目的。
如果多個耗時操作想讓他們依次執(zhí)行,使用如下:
let semaphore = DispatchSemaphore(value: 1)
semaphore.wait()
DispatchQueue.global().async {
print("執(zhí)行了任務1")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("執(zhí)行了任務2")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("執(zhí)行了任務3")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("執(zhí)行了任務4")
semaphore.signal()
}
semaphore.wait()
DispatchQueue.global().async {
print("執(zhí)行了任務5")
semaphore.signal()
}