在Swift 3中,创建DispatchQueue实例:

DispatchQueue(label: String,
              qos: DispatchQoS,
              attributes: DispatchQueue.Attributes,
              autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency,
              target: DispatchQueue?)

我从StackOverFlow看到了示例代码,可以是nil,.global()或.main,此target参数的含义是什么?

我猜.main意味着队列将在主线程上运行,但是.nil或.global()呢?

最佳答案

没有Swift的文档,所以我又回到了GCD的旧文档。我发现的最接近的是函数 dispatch_set_target_queue :

因此,target队列看起来像做两件事:

  • 为新队列提供优先级
  • 对队列中的所有对象执行终结器(deinit)

  • 在两行之间读取时,您的队列和目标队列之间存在一些同步。我目前没有Xcode,因此无法测试。

    关于swift - DispatchQueue中的目标参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40634586/

    10-09 02:32