dispatch semaphore的使用场景

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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲...
    花花世界的孤独行者阅读 526评论 0 1
  • 文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。通过本文,您将了解到: 1. GCD 简介 2. G...
    晓_我想去环游世界阅读 1,165评论 2 8
  • @徐海玲-5组家长助教2017.4.21-15/30 ,5组。 #口号(只有感觉好,才能做得好)# 只有更自律 才...
    lorislee阅读 214评论 0 0
  • 第一次走得这么随性,第一次排得这么匆忙,第一次遇见漫天的星光,第一次观看完整的日出,第一次选择漫无目的的走下去,累...
    大鹏_29wp阅读 986评论 0 1
  • 基于Quick-Cocos2dx-Community3.6.2(编译运行我就不多说,有需要可以网上找下)https...
    回忆并快阅读 1,638评论 2 0