美文网首页
iOS GCD 常用功能

iOS GCD 常用功能

作者: 我是数据链路层 | 来源:发表于2021-07-29 15:29 被阅读0次

获取主队列 异步执行 会开新线程


dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
            //执行耗时操作
            
            dispatch_async(dispatch_get_main_queue(), ^{
                //回到主线程进行UI刷新操作
            };
        };

创建串行队列 开一个线程 顺序执行 1 和 2

dispatch_queue_t testQueue = dispatch_queue_create("test", DISPATCH_QUEUE_SERIAL);

dispatch_async(testQueue, ^{
            
            //执行代码 1
        });
dispatch_async(testQueue, ^{
            
            //执行代码 2
        });


创建并行队列 创建多个线程 1 和 2 无序执行

dispatch_queue_t testQueue = dispatch_queue_create("test", DISPATCH_QUEUE_CONCURRENT);

dispatch_async(testQueue, ^{
            
            //执行代码 1
        });
dispatch_async(testQueue, ^{
            
            //执行代码 2
        });


创建组队列

dispatch_queue_t globalQuene = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
            dispatch_group_t group = dispatch_group_create();
             
            //任务1
            dispatch_group_enter(group);
            dispatch_async(globalQuene, ^{
                 NSLog(@"run task 1");
                sleep(1);
                dispatch_group_leave(group);
            });
             
            //任务2
            dispatch_group_enter(group);
            dispatch_async(globalQuene, ^{
                NSLog(@"run task 2");
                sleep(2);
                dispatch_group_leave(group);
            });
             
            //任务3
            dispatch_group_enter(group);
            dispatch_async(globalQuene, ^{
                NSLog(@"run task 3");
                sleep(3);
                dispatch_group_leave(group);
            });
             
       
           
            //任务3
            dispatch_group_notify(group, dispatch_get_main_queue(), ^{
                NSLog(@"run task 4");
            });

相关文章

  • iOS GCD 常用功能

    获取主队列 异步执行 会开新线程 创建串行队列 开一个线程 顺序执行 1 和 2 创建并行队列 创建多个线程 ...

  • 多线程GCD/NSOperation/NSThread

    iOS常用的多线程:GCD、NSOperation、NSThread GCD 信号量 多度单写 image.png...

  • 多线程之GCD

    GCD,Grand Central Dispatch,iOS中常用的多线程技术,GCD提供C风格的API,相对NS...

  • iOS知识点之定时器

    iOS中常用的定时器有三种,分别是NSTimer,CADisplayLink和GCD。 NSTimer GCD定时...

  • iOS开发中GCD经常用到的线程

    在xcode开发iOS时候,我们经常用到的GCD代码如下:

  • GCD定时器使用

    iOS中的常用定时器分为这几类: NSTimer CADisplayLink GCD定时器 选择GCD定时器原因:...

  • iOS多线程

    iOS中常用的多线程:pthread:C语言 NSThread:OC GCD:C NSOpreration:...

  • iOS GCD常规使用

    前言:本文的主要内容是: iOS中常用的几种多线程技术比较 GCD知识铺垫 GCD的使用 GCD中一些系统提供的其...

  • iOS | 底层原理分析(二)

    一. 多线程 1.1 ios 多线程方案 1.2GCD的常用函数 1.3 GCD的队列 1.4 容易混淆的术语 1...

  • iOS系统的任务管理-GCD探究(上)

    前言: iOS对任务的处理运用了多种线程技术,我们常用的有NSOperation和GCD,这篇文章着重研究GCD的...

网友评论

      本文标题:iOS GCD 常用功能

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