iOS GCD dispatch_semaphore

2017-09-29  本文已影响0人  记lu点滴


例如


dispatch_semaphore_t semaphore = dispatch_semaphore_create(10);

参数为10,可以理解为信号总量为10


dispatch_semaphore_signal(semaphore);

发送一个信号,会让信号量总量为+1


dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

每次调用会使信号总量-1,当信号总量小于等于0时,线程会等待(就是阻塞);当线程在等待时,再次调用dispatch_semaphore_signal(semaphore)时会使线程继续往下执行(就是通畅)。



练习理解:

上一篇 下一篇

猜你喜欢

热点阅读