是dispatch_semaphore_t线程安全

时间:2016-03-04 03:40:56

标签: ios multithreading grand-central-dispatch

我谈到的信号量是这样的

  

dispatch_semaphore_t signal = dispatch_semaphore_create(0);

这个信号变量可以直接来自不同的线程或队列dispatch_semaphore_waitdispatch_semaphore_signal

注意:我确实发现doc说“Dispatch队列本身是线程安全的”。在here。但找不到任何关于dispatch_semaphore_t

的信息

1 个答案:

答案 0 :(得分:4)

它必须是线程安全的,否则就没有意义了。

使用信号量的唯一方法是在一个线程上调用dispatch_semaphore_wait,在另一个线程上调用dispatch_semaphore_signal。从同一个线程调用这两个线程是不可能的(好吧,它是可能的,但它会毫无意义且无法实现)。