我知道创建队列并能够执行单个任务,但是我如何并行执行多个任务。

并发队列---->

let concurrentQueue = DispatchQueue(label: "com.some.concurrentQueue", attributes: .concurrent)
concurrentQueue.async {
    //executable code

}

没有优先级的BackgroundQueue默认为--->
DispatchQueue.global().async {
    //executable code
}

具有优先级的背景队列---->
DispatchQueue.global(qos: .userInitiated).async { //.userInteractive .background .default .unspecified
    //executable code
}

回到主队列---->
DispatchQueue.main.async {
     //executable code
}

所有这些都是异步的,但是如何一次执行多个方法,应该如何快速编写代码。

最佳答案

如果您有一个用于调用方法的for循环方法,并且想同时调用此方法,则只需使用this:

DispatchQueue.concurrentPerform(iterations: Int, execute: { (count) in
   doSomethingFor(count: count)
}

但是,如果您有一些要并发调用的单独方法,则可以这样:
let concurrentQueue = DispatchQueue(label: "com.some.concurrentQueue", attributes: .concurrent)

concurrentQueue.async {
    //executable code
    myFirstMethod()
}

concurrentQueue.async {
    //executable code
       mySecondMethod()
}

这种方式的并发队列将自己并发管理任务。

07-28 06:23