美文网首页
GCD中的串行,并行,同步,异步

GCD中的串行,并行,同步,异步

作者: 坤坤同学 | 来源:发表于2016-11-17 16:42 被阅读33次

首先,串行并行针对的是队列,同步异步针对的是任务;如果觉得队列和任务不太好理解咱们可以打个比方,假设一个应用程序是一个工厂,那队列就是里面的流水线以及线上的工人,而流水线上的工人所要处理的产品就是所谓的任务。

串行,并行
系统会给每个应用自动分配两个队列:

  1. dispatch_get_main_queue() 串行队列 处理UI,也可以叫串行主队列,这个队列会排在主线程中。

  2. dispatch_get_global_queue(优先级, 扩展)并行队列。

当然根据需求也可以自己主动创建队dispatch_queue_create(队列标签, 串行/并行)。

注意:串行queue每次只能执行一个任务,可以使用它来代替锁,保护共享资源或可变的数据结构,串行queue确保任务按可预测的顺序执行(这是比锁好的地方)

同步和异步

  1. 异步调度 dispatch_async : 把一个任务添加到某queue后就马上离开,而不管任务在那个queue里的执行状态

  2. 同步调度 dispatch_sync : 把一个任务添加到某queue后,等这个任务完成,调用线程才继续执行.

所以,异步调度和同步调度的区别不在于被添加的任务怎样执行,而在于调用线程是否等待任务执行完。

相关文章

  • 关于多线程GCD 串行/并行、同步/异步

    一、GCD串行/并行队列创建 串行队列: 并行队列: 二、GCD串行/并行队列同步/异步执行 执行内容1: 执行结...

  • GCD中的串行,并行,同步,异步详解

    gcd中的串行,并行,同步,异步详解 1、gcd中同步与异步的区别: gcd中的线程是由一个线程池来管理的,这个池...

  • IOS多线程总结

    目录 简述 NSThread GCD操作与队列异步操作并行队列同步操作并行队列同步操作串行队列异步操作串行队列队列...

  • GCD的同步异步串行并行、NSOperation和NSOpera

    (1)GCD实现的同步异步、串行并行。 ——同步sync应用场景:用户登录,利用阻塞 ——串行异步应用场景:下载等...

  • 2022-07-25

    GCD编程中串行、并行、同步、异步的执行顺序 https://blog.csdn.net/feisongfeiqi...

  • iOS多线程操作GCD以及NSOperation简介

    GCD是一套C写的多线程模型,根据队列类型和是否同步可以分为并行同步,并行异步,串行同步,串行异步。具体使用可以查...

  • iOS多线程小结

    同步异步串行并行 同步串行:不开启线程 同步并行:不开启线程 异步串行:最多开启一个线程 异步并行:开启线程 同步...

  • 多线程GCD的使用

    一、同步/异步、串行/并行的区别 1.同步/异步 同步/异步是指线程与线程之间的关系。 2.串行/并行 串行、并行...

  • GCD

    1、同步串行队列 2、同步并行队列 3、异步串行队列 4、异步并行队列 5、死锁 主线程中创建同步串行队列 主线程...

  • GCD 中同步、异步、串行、并行

    串行队列 VS 并行队列 GCD 中的队列是用来放置需要执行的任务的,任务的取出遵循队列的先进先出的原则。GCD ...

网友评论

      本文标题:GCD中的串行,并行,同步,异步

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