我知道创建队列并能够执行单个任务,但是我如何并行执行多个任务。
并发队列---->
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()
}
这种方式的并发队列将自己并发管理任务。