GCD线程同步
一 .用于多个线程任务并发完成之后的同步操作
举例:等abc并发完成全部完成之后,执行d
(1) dispatch_group_async
提交的任务与dispatch_group_notify同步
(2)dispatch_group_enter ,dispatch_group_leave
提交的任务与dispatch_group_notify同步
二 .用于多个线程任务之间的同步操作
举例:a完成之后开启b,b完成之后开启c
(1)dispatch_group_wait
与enter,leave配套使用,阻塞当前线程
dispatch_group_wait(group1,DISPATCH_TIME_FOREVER)上面的任务执行完成后,线程才继续执行。
(2)dispatch_barrier
栅栏函数 ,阻塞后面的并发任务
(3)dispatch_semaphore
信号量
dispatch_semaphore_signal发信号,表示任务完成
dispatch_semaphore_wait等信号,阻塞任务,等到之后才开始做任务
网友评论