小编Ali*_*eeb的帖子

Swift DispatchQueue:串行或并行

在我的应用程序中,我必须在后台同时解压缩多个文件。哪个代码会在多个线程上并行执行compressedFiles数组:

for file in compressedFiles {
  DispatchQueue.global(qos: .userInteractive).async {
    let work = DispatchGroup()
    work.enter()
    file.decompress()
    work.leave()
  }
}
Run Code Online (Sandbox Code Playgroud)

或者:

DispatchQueue.global(qos: .userInteractive).async {
  for file in compressedFiles {
    let work = DispatchGroup()
    work.enter()
    file.decompress()
    work.leave()
  }
}
Run Code Online (Sandbox Code Playgroud)

另外,如果我想在其中一个文件解压过程完成后收到通知,如何利用 DispatchGroup 类?wait()和notify()放在哪里?

谢谢。

concurrency multithreading grand-central-dispatch swift

2
推荐指数
1
解决办法
2878
查看次数