GCD
1 | func groupTask(name: String, completed: @escaping (_ name: String)->Void){ |
DispatchGroup
1 | // DispatchGroup用来管理一组任务的执行,然后监听任务都完成的事件。比如,多个网络请求同时发出去,等网络请求都完成后reload UI。 |
DispatchSemaphore
1 | // DispatchSemaphore是传统计数信号量的封装,用来控制资源被多任务访问的情况。 |
barrier
1 | // barrier翻译过来就是屏障。在一个并行queue里,很多时候,我们提交一个新的任务需要这样做。 |