传递给dispatch_queue_attr_t的内容

时间:2016-02-03 21:53:53

标签: grand-central-dispatch

我一直在阅读有关Grand Central Dispatch的各种教程。由于示例倾向于对第二个创建参数使用null,即:

dispatch_queue_t myQueue = dispatch_queue_create(com.something.myqueue, NULL)

我很难理解第二个参数是用来做什么的。根据例子,它通常是空的吗?在http://jeffreysambells.com/2013/03/01/asynchronous-operations-in-ios-with-grand-central-dispatch

1 个答案:

答案 0 :(得分:3)

第二个参数指定所需的队列类型:serial或concurrent。

如果您要求串行队列,则提交到队列的块将按照它们提交的顺序执行,一次一个。

如果你要求并发队列,那么块可能(或可能不会)在队列中的不同线程上同时执行。

您将在定义中看到menu_modifier_groups[1]表示连续。这是queue.h的定义:

NULL

所以你要传递的内容在很大程度上取决于你正在做什么以及你所做的事情是否可以并行化。