ios – 暂停调度队列是否会暂停其目标队列?

ios – 暂停调度队列是否会暂停其目标队列?,第1张

概述我想创建两个串行队列A& B.队列B是队列A的目标.我想在B上排队一些块,并暂停它直到我准备执行它们,但是我想继续在队列A上执行块. 如果我暂停B,这还会暂停它的目标队列(队列A)吗? 我的想法是,我想安排这些特定的块(在队列B上)在稍后(未指定的)日期执行但是我不希望它们同时运行(这涉及核心数据^ _ ^)而我不这样做想要处理信号量.但我希望队列A继续处理它的块,而B则被暂停 如果不清楚这里是一 我想创建两个串行队列A& B.队列B是队列A的目标.我想在B上排队一些块,并暂停它直到我准备执行它们,但是我想继续在队列A上执行块.

如果我暂停B,这还会暂停它的目标队列(队列A)吗?

我的想法是,我想安排这些特定的块(在队列B上)在稍后(未指定的)日期执行但是我不希望它们同时运行(这涉及核心数据^ _ ^)而我不这样做想要处理信号量.但我希望队列A继续处理它的块,而B则被暂停

如果不清楚这里是一些示例代码

dispatch_queue_t queueA = dispatch_queue_create("app.queue.A");dispatch_queue_t queueB = dispatch_queue_create("app.queue.B");dispatch_set_target_queue( queueB,queueA );dispatch_suspend( queueB );/**   Add a bunch of blocks to queue B or A *   Where the ones added to A should execute immediately*///Wait till blocks on queue A have finished and start up Bdispatch_resume( queueB );dispatch_release(queueA);dispatch_release(queueB);
解决方法
dispatch_set_target_queue(queueB,queueA);dispatch_suspend(queueB);

queueB被挂起,但queueA未被挂起.

dispatch_set_target_queue(queueB,queueA);dispatch_suspend(queueA);

queueA和queueB被挂起.

总结

以上是内存溢出为你收集整理的ios – 暂停调度队列是否会暂停其目标队列?全部内容,希望文章能够帮你解决ios – 暂停调度队列是否会暂停其目标队列?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存