GCD实现:A、B、C 三个任务同步执行,完成后执行任务 D

2018-11-23  本文已影响0人  堕落白天使

需要解决这个首先就需要了解dispatch_group_enter 和 dispatch_group_leave。

dispatch_group_enter 标志着一个任务追加到 group,执行一次,相当于 group 中未执行完毕任务数+1

dispatch_group_leave 标志着一个任务离开了 group,执行一次,相当于 group 中未执行完毕任务数-1。

当 group 中未执行完毕任务数为0的时候,才会使dispatch_group_wait解除阻塞,以及执行追加到dispatch_group_notify中的任务。

1.在主线程中同步执行

2.在子线程中异步执行

上一篇 下一篇

猜你喜欢

热点阅读