如何创建始终串行的GCD队列,即使在多核CPU上?
就我所了解的非主队列GCD队列而言,它们仅在具有单核CPU的设备上默认串行。但是如果一个设备具有多个内核,则可能会发生队列中的块同时执行。如何创建始终串行的GCD队列,即使在多核CPU上?
我想使用串行GCD队列来克服一些并发问题,即使有多个内核,此队列也必须是串行的。
开发人员提到这是可能的。我将如何创建这样一个总是连续的队列?
回答:
可以使用dispatch_get_global_queue
函数获得的标准GCD队列确实是并发的。
但您可以使用dispatch_queue_create函数创建自定义gcd队列。通过DISPATCH_QUEUE_SERIAL
作为第二个参数来创建队列作为串行。
回答:
要创建并发队列:dispatch_queue_t concurrentQueue = dispatch_queue_create("com.aj.concurrent.queue", DISPATCH_QUEUE_CONCURRENT);
要创建序列队列:dispatch_queue_t serialQueue = dispatch_queue_create("com.aj.serial.queue", DISPATCH_QUEUE_SERIAL);
以上是 如何创建始终串行的GCD队列,即使在多核CPU上? 的全部内容, 来源链接: utcz.com/qa/263305.html