ios swift 信号量

279 阅读1分钟
  • 创建信号量

/// 信号量 value非负整数 最大并发量,初始化1个信号量

    let semaphore = DispatchSemaphore(value: 1)
  • 信号量使用

//   wait 当信号量为0时候,会阻塞当前线程 参数(信号量,等待时间);注意不要阻塞主线程

            self.semaphore.wait()
// 信号量+1,变为1 , 其它线程可以进入,释放信号量


                    self.semaphore.signal()

信号量 可以起到互斥的作用,也可以起到锁保护的作用。