一个页面请求多个接口的设计方案

在一个页面可能会有请求多个接口的情况,而接口的请求是异步的,为了能保证一个页面数据的同步处理,针对多个异步线程的处理建议使用信号量机制,在异步线程开始前将信号量加1,线程执行完成后再把信号量减1,然后通过线程的汇总,在信号量为0的时候执行页面数据的处理操作。

信号量的加减操作有两种:
第一种:
自定义一个信号量dispatch_semaphore_t,一般默认初始化的信号量值是0.
信号量加1:

dispatch_semaphore_signal(semaphore);

信号量减1:

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

第二种:
创建线程组dispatch_group_t,对线程组进行信号量的加减操作
信号量加1:

dispatch_group_enter(group);

信号量减1:

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

推荐阅读更多精彩内容

  • Managing Units of Work(管理工作单位) 调度块允许您直接配置队列中各个工作单元的属性。它们还...
    edison0428阅读 8,092评论 0 1
  • 背景 担心了两周的我终于轮到去医院做胃镜检查了!去的时候我都想好了最坏的可能(胃癌),之前在网上查的症状都很相似。...
    Dely阅读 9,297评论 21 42
  • 陶瓷,是我国古代的伟大发明之一,是中华民族发展史上的瑰宝,她印证着中华民族的伟大文明,向世人展示着中华民族的璀...
    黄大仙人掌阅读 485评论 0 2
  • “你得好好学习呀,以后才能考个好大学有个好工作,才能找个好对象啊!”这可能是在初高中听过最多的话了。 在父母看来,...
    刺阿猬刺阅读 286评论 0 0
  • 文章转自我个人博客 本文前半部分对照 Proguard 文档 (Manul 中的 Introduce 部分)进行翻...
    搬代码白言午阅读 2,235评论 1 5