dispatch - 多线程 OR 单线程

dispatch_async 不会阻塞当前线程

dispatch_async 阻塞当前线程,一直等到它提交的任务,被某个另外的线程执行完毕,再继续进行。


Queue的类型,决定了任务的处理能力,concurrent的比Serial的吞吐量大。但是在具体执行的时候,最终使用多少个线程,要依赖于queue的任务数量。

不见得说,concurrent中的Task,都是被不同的线程处理。如果每次提交一个Task,然后用sync的方式-提交,完成后,再提交下一个。 那么所提交的任务,可能仅仅被一个线程处理。


是否使用多线程,用什么线程,是dispatch自己决定的。USER来说 不需要 知道这些信息。

如果需要,可以自己使用THREAD.


是否阻塞当前线程,和多线程无关。

如果把一个耗时的任务,通过dispatch 再 Dispatch的方式,提交到main_queue中,那么最终,UI 还是会 NO Reponse. 和在UI响应事件中,直接调用,没有区别。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本篇博客共分以下几个模块来介绍GCD的相关内容: 多线程相关概念 多线程编程技术的优缺点比较? GCD中的三种队列...
    有梦想的老伯伯阅读 4,628评论 0 4
  • NSThread 第一种:通过NSThread的对象方法 NSThread *thread = [[NSThrea...
    攻城狮GG阅读 4,308评论 0 3
  • 本篇博客共分以下几个模块来介绍GCD的相关内容: 多线程相关概念 多线程编程技术的优缺点比较? GCD中的三种队列...
    dullgrass阅读 37,970评论 28 236
  • iOS中GCD的使用小结 作者dullgrass 2015.11.20 09:41*字数 4996阅读 20199...
    DanDanC阅读 4,622评论 0 0
  • 一、前言 上一篇文章iOS多线程浅汇-原理篇中整理了一些有关多线程的基本概念。本篇博文介绍的是iOS中常用的几个多...
    nuclear阅读 6,256评论 6 18

友情链接更多精彩内容