dispatch semaphore的使用场景

2018-10-08  本文已影响0人  盖小聂

1、加锁

dispatch_semaphore_create(1);
//semaphore大于等于1,减1不等待
//否则等待到永远
dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
//加锁的代码
……
//semaphore的值加1
dispatch_semaphore_signal();

2、异步任务同步返回

dispatch_semaphore_create(0);
//异步任务返回的结果
dispatch_semaphore_signal();
dispatch_semaphore_wait();

3、控制GCD线程的最大并发数

dispatch_semaphore_create(5);

上一篇下一篇

猜你喜欢

热点阅读