iOS多线程(二)

2019-08-24  本文已影响0人  漆黑烈焰武士G

一、GCD简介

二、GCD的应用

  1. 栅栏函数

    • 一定要是自定义的并发队列,不然没有效果

      如果栅栏函数堵塞了全局并发队列那系统就GG了

    • dispatch_barrier_async和dispatch_barrier_sync

      • dispatch_barrier_async 前面的任务执行完毕才会来到这里,不影响队列外任务的执行
      • dispatch_barrier_sync 作用相同,但是这个会堵塞线程,影响后面的任务执行,包括队列外的任务
    • 栅栏函数只能控制同一并发队列 --- 不够优秀的地方 --- 不利于封装

  2. 调度组

    控制任务执行顺序

    • dispatch_group_create 创建组

      dispatch_group_async 进组任务

      dispatch_group_notify 进组任务执行完毕通知

      dispatch_group_wait 进组任务执行等待时间

    • dispatch_group_enter 进组

      dispatch_group_leave 出组

      注意搭配使用

  3. 信号量dispatch_semaphore_t

  4. Dispatch_Source

上一篇 下一篇

猜你喜欢

热点阅读