zoukankan      html  css  js  c++  java
  • iOS 控制任务执行顺序

    iOS 控制任务执行顺序,需求:
    有两个任务都要放在子线程中执行, 且要保证A执行完再执行B.
    如果你也有同样的需求, 可以从下面几种方法中挑选一种


    实现方法
    1.1. 方法一 使用GCD串行队列. 

    1.2 方法二 使用barrier.

    1.3 方法三 使用NSOperation
    在这之前简单介绍一下 NSOperation
    * NSOperation 是对GCD的封装.
    * NSOperation 是一个抽象类, 不能封装任务, 需要他的两个子类完成 NSInvocationOperation 和 NSBlockOperation
    * 需要调用start 方法开启, 默认是同步执行,也就是说默认不会开线程, 也可以使用 cancel 方法取消, 但是只能取消未开始的任务,已经开始的任务,无法被取消.
    * 在NSOperation 添加到queue后, 通常会在很短的时间内得到运行, 但是如果Operation有添加依赖或者queue 被设置成等待, 那可能需要等待.

    1.4 方法四, 既然NSOperation是对GCD的封装,那么联想方法一, 我想能不能将NSOperationQueue也设置成串行队列.

    https://www.2cto.com/kf/201707/659390.html

  • 相关阅读:
    DS博客作业05--查找
    DS博客作业04--图
    数据结构-栈,队列
    我の第六篇博客
    我の第五篇博客
    我の第四篇博客
    我の第三篇博客
    我の第二篇博客
    Java 购物车大作业01
    有理数类的设计
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/9002110.html
Copyright © 2011-2022 走看看