gpt4 book ai didi

ios - 我如何在 GCD 中将一个 block 添加到调度队列的前面?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:08:00 29 4
gpt4 key购买 nike

我想我读过一次关于在 Grand Central Dispatch 中将 block 添加到调度队列前面的方法(这样它就不会等待其他待处理的 block )。但我在 GCD Reference 中找不到它.有谁知道这是否可能,如果可能的话如何?

最佳答案

没有公共(public) API 来“跳转”队列,也没有从队列中删除或重新排序先前入队但尚未执行的 block 。如果你只是想让一个 block 以比其他 block 更高的优先级执行,你可以将它提交到高优先级全局并发队列,但是这样做自然会失去使用特定队列提供的任何并发保证。除此之外,您必须自己实现此功能。

做到这一点的一种方法可能是在 dispatch_async 周围拥有自己的包装器,它将每个 block 包装在另一个 block 中,这将使“队列跳跃” block 有机会在每个非队列之前执行 -跳 block 。可以想象为“跳线”创建第二个串行队列,这些包装器 block 可以相应地暂停和恢复。

但一般来说,一旦提交,就无法对 GCD 队列中的 block 重新排序。

关于ios - 我如何在 GCD 中将一个 block 添加到调度队列的前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24165346/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com