美文网首页
GCD学习总结

GCD学习总结

作者: 纱云 | 来源:发表于2020-10-28 11:10 被阅读0次
  dispatch_queue_t queue = dispatch_queue_create("make", DISPATCH_QUEUE_SERIAL);
    NSLog(@"1");
    dispatch_async(queue, ^{
        NSLog(@"2");
        dispatch_sync(queue , ^{
            NSLog(@"3");
        });
        NSLog(@"4");

    });
    NSLog(@"5");

串行同步会造成死锁

   dispatch_queue_t queue = dispatch_queue_create("make", DISPATCH_QUEUE_CONCURRENT);
    NSLog(@"1");
    //队列是一种数据结构
    dispatch_async(queue, ^{
        NSLog(@"2");
        dispatch_async(queue , ^{
            NSLog(@"3");
        });
        NSLog(@"4");
    });
    NSLog(@"5");

执行顺序 :1 5 2 4 3 异步不阻塞线程

 dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    dispatch_group_t group = dispatch_group_create();
    dispatch_group_enter(group);
//dispatch_group_enter signal+1 当等于0 会唤醒dispatch_group_notify
    dispatch_async(queue, ^{
        NSLog(@"finish");
        dispatch_group_leave(group);//signal-1
    });
    
    dispatch_group_enter(group);
    dispatch_async(queue, ^{
        NSLog(@"finish1");
        dispatch_group_leave(group);
    });
    
    dispatch_group_notify(group, queue, ^{
        NSLog(@"所有任务执行完毕");
    });

相关文章

  • iOS多线程-GCD 附带GCD相关代码

    多线程学习笔记-GCD 我把这篇文章所用到的代码总结到这里->GCD项目总结下载地址-GCD-wxk可以下载参考 ...

  • GCD的使用

    最近在学习GCD,所以在网上找了些资料,这里只是对自己学习的总结 1.概念 GCD的好处GCD可用于多核的并行运算...

  • GCD学习总结

    文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。通过本文,您将了解到: 1. GCD 简介 2. G...

  • GCD学习总结

    GCD概述: OC: 相关练习: Swift 3.0: 相关练习: 参考资料:http://www.jianshu...

  • GCD学习总结

    GCD GCD的全称是Grand Central Dispatch,字面意思就是“极好的中枢调度器”,它能通过队列...

  • GCD 学习总结

    一、GCD 简介: 全称是 Grand Central Dispatch,是纯 C 语言,提供了非常多强大的函数。...

  • GCD学习总结

    GCD容易混淆的概念 任务,同步,异步 ,串行队列,并发队列 任务就是要做的事情 同步和异步是用来执行任务的 串行...

  • GCD学习总结

    串行同步会造成死锁 执行顺序 :1 5 2 4 3 异步不阻塞线程

  • iOS多线程:『GCD』详尽总结

    iOS多线程:『GCD』详尽总结 iOS多线程:『GCD』详尽总结

  • iOS 多线程学习-思维导图版本

    GCD、NSOperation、NSThread 1.GCD 参考地址:iOS 多线程:『GCD』详尽总结 重要概...

网友评论

      本文标题:GCD学习总结

      本文链接:https://www.haomeiwen.com/subject/cmyqvktx.html