美文网首页
dispatch - 多线程 OR 单线程

dispatch - 多线程 OR 单线程

作者: hi_world | 来源:发表于2016-03-04 09:59 被阅读0次

dispatch_async 不会阻塞当前线程

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

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

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

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

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

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

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

相关文章

  • dispatch - 多线程 OR 单线程

    dispatch_async 不会阻塞当前线程 dispatch_async 会阻塞当前线程,一直等到它提交的任务...

  • Java中多线程

    一、概述 1、多线程和单线程 多线程即一个程序中有多个线程在同时执行,单线程和多线程: 单线程:若有多个任务,只有...

  • GCD多线程归纳和总结

    GCD多线程基础知识 Serial Dispatch Queue 串行队列Concurrent Dispatch ...

  • GCD之dispatch

    异步dispatch_async同步dispatch_syn获取线程dispatch_get 常用的多线程 组队列...

  • 数据源方法调用在viewDidload之前

    使用多线程中的异步方法: dispatch_asyn(dispatch_get_main_queue(),^{ ...

  • 多线程-GCD

    Dispatch Queues Serial Dispatch Queue单线程模式,一个任务处理完才会执行下一个...

  • 2018-11-16

    单线程和多线程区别 单线程设置变量举例${sign} 单线程设置变量举例${__property(sign)}

  • iOS Dispatch Semaphore使用

    Dispatch Semaphore介绍 Dispatch Semaphore 是持有计数的信号,是多线程编程中的...

  • 多线程 webworker

    多线程——webWorker1、单线程与多线程区别:单线程:前一个操作没做完,后一个没办法开始多线程:可以同时进行...

  • iOS多线程-GCD之dispatch_barrier_asyn

    上一篇 iOS多线程-GCD之Dispatch Group 一、释义 dispatch_barrier_async...

网友评论

      本文标题:dispatch - 多线程 OR 单线程

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