美文网首页
GCD 的 API

GCD 的 API

作者: ChancePro | 来源:发表于2018-12-09 22:56 被阅读7次

    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

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