GCD线程依赖,GCD队列组,线程监听,线程等待

2021-06-16 03:03

阅读:539

标签:bsp   int   oid   异步   dispatch   wait   完成   default   16px   

1.线程监听

有时候经常有这样的需求,AB任务都执行完成之后,刷新界面或者执行其他操作,

/**
 * 队列组 dispatch_group_notify
 */
- (void)groupNotify {
    NSLog(@"begin");
    
    dispatch_group_t group =  dispatch_group_create();
    
    dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        // 追加任务1
        for (int i = 0; i 

  

技术分享图片

 

 

2.线程等待

 

暂停当前线程(阻塞当前线程),等待指定的 group 中的任务执行完成后,才会往下继续执行

从dispatch_group_wait相关代码运行输出结果可以看出:

当所有任务执行完成之后,才执行 dispatch_group_wait 之后的操作。但是,使用dispatch_group_wait 会阻塞当前线程。

/**
 * 队列组 dispatch_group_wait
 */
- (void)groupWait {

    NSLog(@"begin");
    
    dispatch_group_t group =  dispatch_group_create();
    
    dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        // 追加任务1
        for (int i = 0; i 

  技术分享图片

 

GCD线程依赖,GCD队列组,线程监听,线程等待

标签:bsp   int   oid   异步   dispatch   wait   完成   default   16px   

原文地址:https://www.cnblogs.com/huangzhenwei/p/9728582.html


评论


亲,登录后才可以留言!