GCD&NSOperation

2017-06-23  本文已影响78人  sajiner

GCD&NSOperation 区别

NSOperation:

GCD:

GCD 概念:

任务使用 block 封装

执行任务的函数:
1. 异步 dispatch_async
* 不用等待当前语句执行完毕,就可以执行下一条语句
* 会开启线程执行 block 的任务

2. 同步 dispatch_sync
   * 必须等待当前语句执行完毕后,才会执行下一条语句
   * 不会开启线程
   * 在当前线程执行 block 的任务

队列 - 负责调度任务
1. 串行队列
* 一次只能调度一个任务
* dispatch_queue_create("name", NULL);

2. 并发队列
    * 一次可以调度多个任务
    * dispatch_queue_create("name", DISPATCH_QUEUE_CONCURRENT);

3.主队列
   * 专门用来在主线程上调度任务的队列
   * 不会开启线程
   * 如果主线程上正在有代码执行,就不会调度队列中的任务
   * dispatch_get_main_queue();

小结

实际开发中,线程数量如何决定

NSOperation

代码链接

上一篇 下一篇

猜你喜欢

热点阅读