可可 – 使用dispatch_sync在大中央调度

可可 – 使用dispatch_sync在大中央调度,第1张

概述任何人都可以解释与真正明确的用例什么在GCD dispatch_sync的目的是什么?我不明白在哪里和为什么我会使用这个。 谢谢! 当你想执行一个块并等待结果时使用它。 其中一个示例是使用调度队列而不是锁进行同步的模式。例如,假设您有一个共享的NSMutableArray a,访问由调度队列q调解。后台线程可能附加到数组(async),而你的前台线程正在拉动第一个项目(同步): NSMutable 任何人都可以解释与真正明确的用例什么在GCD dispatch_sync的目的是什么?我不明白在哪里和为什么我会使用这个。

谢谢!

解决方法 当你想执行一个块并等待结果时使用它。

其中一个示例是使用调度队列而不是锁进行同步的模式。例如,假设您有一个共享的NSMutableArray a,访问由调度队列q调解。后台线程可能附加到数组(async),而你的前台线程正在拉动第一个项目(同步):

NSMutableArray *a = [[NSMutableArray alloc] init];// All access to `a` is via this dispatch queue!dispatch_queue_t q = dispatch_queue_create("com.foo.samplequeue",NulL);dispatch_async(q,^{ [a addobject:something]; }); // append to array,non-blocking__block Something *first = nil;            // "__block" to make results from block availabledispatch_sync(q,^{                        // note that these 3 statements...        if ([a count] > 0) {               // ...are all executed together...             first = [a objectAtIndex:0];  // ...as part of a single block...             [a removeObjectAtIndex:0];    // ...to ensure consistent results        }});
总结

以上是内存溢出为你收集整理的可可 – 使用dispatch_sync在大中央调度全部内容,希望文章能够帮你解决可可 – 使用dispatch_sync在大中央调度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1049100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存