我读到这里的苹果文档,用于创建并发队列都DISPATCH_QUEUE_CONCURRENT和全局并发调度队列可以使用但我不确定什么两者之间的区别是。
以前的
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ });
和
dispatch_queue_t queue = dispatch_queue_create("custom",DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue, ^{ });
我读了一些关于障碍的文章,但不确定如何将它们与这两者联系起来。有人可以解释这两种情况的用例吗?
共有四个全局并发队列,每个队列分别对应四个不同的优先级,这些优先级始终存在,并且在需要时始终存在。因此,您无需创建并发队列即可在后台执行某些块。dispatch_get_global_queue()返回这四个队列之一。
您可以根据需要创建自己的队列,并在不再需要它们时将其删除。
您正在阅读的关于障碍的内容:每个人都使用全局队列。在每个人都使用的队列中使用屏障,这是非常不礼貌的。这就是为什么您不应该在全局队列中使用障碍,而只能在您自己创建的队列中使用障碍。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句