博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCD基本知识
阅读量:6156 次
发布时间:2019-06-21

本文共 1124 字,大约阅读时间需要 3 分钟。

1、纯C语言,提供了非常多的强大的函数。

2、GCD的核心:

        将任务添加到队列。(任务:执行什么操作。队列:用来存放任务,特点是先进先出)

3、GCD的使用步骤:

        -->创建任务(即确定要做的事情)。GCD中的任务是用block封装的。

        -->将任务添加到队列中

                >GCD会自动将队列中的任务取出,放到对应的线程中执行。

                >任务从队列中取出原则:先进先出。

示例代码:

1     // 1、创建队列 2     // dispatch_queue_t queue = dispatch_get_global_queue(0, 0); 3      4     // 2、创建任务:用Block指定(无参无返回值) 5     // void(^task)() = ^{ 6     //    NSLog(@"%@",[NSThread currentThread]); 7     // }; 8      9     // 3、将任务添加到队列10     // dispatch_async:表示任务是异步的11     // dispatch_sync:表示任务是同步的12     // dispatch_async(queue, task);13     14     // 简写方式:15     dispatch_async(dispatch_get_global_queue(0,0), ^{16         NSLog(@"%@",[NSThread currentThread]);17     });

 

GCD执行任务的2个函数:

1 // 同步的方式执行任务,在当前线程中依次执行任务2 dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);3 4 // 异步的方式执行任务,会开辟新线程,在新线程中执行任务5 dispatch_async(dispatch_queue_t queue, dispatch_block_t block);

 

GCD的2种队列类型:

队列:就是用来存放任务的,特点是先进先出。

1、串行队列:让任务一个接着一个的有序执行,不管队列里面放的是什么任务,都是一个任务执行完毕后,再执行下一个任务。

2、并行队列(又叫并发队列):

  2.1>可以让多个任务“并发/同时”执行,自动开启多个线程同时执行多个任务

  2.2>同时可以调度多个任务执行

  2.3>并发队列的并发功能只有内部的任务是异步任务时,才有效。

转载于:https://www.cnblogs.com/panda1024/p/6265997.html

你可能感兴趣的文章
如何避免历史回退到登录页面
查看>>
《图解HTTP》1~53Page Web网络基础 HTTP协议 HTTP报文内的HTTP信息
查看>>
unix环境高级编程-高级IO(2)
查看>>
树莓派是如何免疫 Meltdown 和 Spectre 漏洞的
查看>>
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>
手机端userAgent
查看>>
pip安装Mysql-python报错EnvironmentError: mysql_config not found
查看>>
http协议组成(请求状态码)
查看>>
怎样成为一个高手观后感
查看>>
[转]VC预处理指令与宏定义的妙用
查看>>
MySql操作
查看>>
python 解析 XML文件
查看>>
MySQL 文件导入出错
查看>>
java相关
查看>>
由一个异常开始思考springmvc参数解析
查看>>
向上扩展型SSD 将可满足向外扩展需求
查看>>
虚机不能启动的特例思考
查看>>
SQL Server编程系列(1):SMO介绍
查看>>