iOS异步转同步操作

异步方法同步执行

1.dispatch_group

- (NSInteger)methodSyncDispatchGroup
{
    __block NSInteger result = 0;
    dispatch_group_t group = dispatch_group_create();
    dispatch_group_enter(group);
    [self methodAsync:^(NSInteger value) {
        result = value;
        dispatch_group_leave(group);
    }];
    dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
    return result;
}

2.dispatch_semaphore

- (NSInteger)methodSyncSemaphore
{
    __block NSInteger result = 0;
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    [self methodAsync:^(NSInteger value) {
        result = value;
        dispatch_semaphore_signal(sema);
    }];
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    return result;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲...
    花花世界的孤独行者阅读 3,443评论 0 1
  • 文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。通过本文,您将了解到: 1. GCD 简介 2. G...
    晓_我想去环游世界阅读 4,814评论 2 8
  • 很久前的总结,今天贴出来。适合看了就用,很少讲解,纯粹用法。 目录 Dispatch Queue dispatch...
    和女神经常玩阅读 3,945评论 0 3
  • 阳光快乐型:健康、进取、向上,能够正确的面对遇到的各种困难与挫折,能够顺利的学习各种知识与技能。他们眼里总是闪烁着...
    芒儿阅读 2,773评论 0 0
  • 2017-6-4 今天是喜乐操练第一周最后一天。从最开始的读书、写笔记、刻意在生活中寻找喜乐走过的足迹,到今天可以...
    喜乐在我心阅读 3,892评论 0 6