使用 DispatchGroup 和 NSRecursiveLock 之间有什么区别(优点和缺点)?

Dmi*_*try 3 multithreading grand-central-dispatch nslock

DispatchGroup使用和之间有什么区别(优点和缺点)NSRecursiveLock

看起来他们正在做完全相同的事情。

Rob*_*Rob 6

锁和组的用途截然不同。当处理一系列并发任务时:

  • 锁通常用于防止/阻止这些任务同时与某些共享的非线程安全资源交互。

  • 组通常用于识别这些并发任务何时全部完成(无论它们完成的顺序如何)。

例如,如果并行处理一系列图像,您可以使用锁或类似的机制来更新某些属性(例如结果数组),而调度组用于了解所有这些并发任务何时完成。