如何使用 GCD 为自定义创建的串行异步队列设置高优先级?
我看过this Q&A其中建议使用 dispatch_set_target_queue()
并传递高优先级队列 (DISPATCH_QUEUE_PRIORITY_HIGH
),这是自定义串行异步队列的并发队列。
我的理解是,这将使串行队列上的所有任务并发执行。我的理解正确吗?如果是这样,替代解决方案是什么?
最佳答案
在 iOS 8 之前,将目标队列设置为高优先级队列是实现此目的的方法。即使目标队列是并发的,您的队列也将保持串行。
从 8.0 版开始,还有另一种方法可以做到这一点:
dispatch_queue_attr_t queueAttrs = dispatch_queue_attr_make_with_qos_class(
DISPATCH_QUEUE_SERIAL,
QOS_CLASS_USER_INITIATED /* Same as DISPATCH_QUEUE_PRIORITY_HIGH */,
0
);
dispatch_queue_t queue = dispatch_queue_create("myqueue",queueAttrs);
关于ios - 为自定义创建的串行异步队列设置优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26183030/