DispatchSemaphore 信号量的使用

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()
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容