队列组dispatch_group的使用

2019-03-11  本文已影响0人  邓布利多教授

dispatch_group_t:队列组

dispatch_group_enter和dispatch_group_leave:
结合使用,意思相当于有进就有出,功能等同于dispatch_group_sync

dispatch_group_notify:
调动队列组到指定线程执行任务。

NSLog(@"begin");
/*
创建队列组
*/
dispatch_group_t group =  dispatch_group_create();

/*
异步执行并发队列
*/
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSLog(@"1111");
});

/*
任务执行完毕,回到主线程
*/
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    NSLog(@"end");
});

dispatch_group_wait:
暂停当前线程(阻塞当前线程)。

NSLog(@"begin");
/*
创建队列组
*/
dispatch_group_t group =  dispatch_group_create();

/*
异步执行并发队列
*/
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSLog(@"1111");
});

/*
等待上面的任务全部完成后,会往下继续执行
*/
dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
NSLog(@"end");
上一篇下一篇

猜你喜欢

热点阅读