GCD 的 API

1. Dispatch Queue

开发者要做的只是定义想执行的任务并追加到适当的 Dispatch Queue 中。

dispatch_async { queue,  ^{
        //想执行的任务
});

通过 dispatch_async 函数“追加”赋值在变量 queue 的“Dispatch Queue中”。

Dispatch Queue 的种类

有两种Dispatch Queue,一种是等待现在执行中处理的 Serial Dispatch Queue,另一种是不等待现在执行中处理的 Concurrent Dispatch Queue。

2. dispatch_queue_create 创建队列

3. Main Dispatch Queue/Global Dispatch Queue 系统提供的两个队列

4. dispatch_set_target_queue 变更执行的优先级

5. dispatch_after 延时执行

需要注意的是dispatch_after函数并不是在指定时间后执行处理,而只是在指定时间追加处理到 Dispatch Queue。

6. Dispatch Group

dispatch_group_notify
dispatch_group_wait

7. dispatch_barrier_async

8. dispatch_sync 把任务Block同步追加到指定的Dispatch Queue中。

9. dispatch_apply

10. dispatch_suspend / dispatch_resume 挂起、恢复指定的Dispatch Queue。

11. Dispatch Semaphore

12. dispatch_once

13. Dispatch I/O

通过 Dispatch I/O 读写文件时,使用Global Dispatch Queue 将1个文件按某大小 read/write。
dispatch_io_create 函数生成 Dispatch I/O,并制定发生错误时用来执行处理的 Block,以及执行该 Block 的Dispatch Queue。dispatch_io_set_low_water 函数设定一次读取的大小(分割大小),dispatch_io_read函数使用Global Dispatch Queue开始并列读取。每当各个分割的文件块读取结束时,将含有文件块数据的 Dispatch Data 传递给 dispatch_io_read 函数制定的读取结束时回调用的 Block。回调用的 Block 分析传递过来的 Dispatch Data 并进行结合处理。
如果想提高文件读取速度,可以尝试使用 Dispatch I/O。

你可能感兴趣的:(GCD 的 API)