Int*_*rog 6 iphone concurrency grand-central-dispatch ipad ios
据我所知,非主队列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);