-
创建信号量
/// 信号量 value非负整数 最大并发量,初始化1个信号量
let semaphore = DispatchSemaphore(value: 1)
-
信号量使用
// wait 当信号量为0时候,会阻塞当前线程 参数(信号量,等待时间);注意不要阻塞主线程
self.semaphore.wait()
// 信号量+1,变为1 , 其它线程可以进入,释放信号量
self.semaphore.signal()
信号量 可以起到互斥的作用,也可以起到锁保护的作用。