GCD

作者: my__life | 来源:发表于2016-04-25 10:57 被阅读9次

    1.串行队列特点

    a.以先进先出的方式,顺序调度队列的任务

    b.无论队列所指定的执行函数是同步还是导步,都会等上一个任务执行完成之后再执行下一个任务

    dispatch_queue_t  queue=dispatch_queue_create("zzh",DISPATCH_QUEUE_SERIAL);

    2.并发队列特点:

    a.以先进先出的方式,在并发调度队列中的任务执行

    b.如果当前调度的任务是同步的,会等待任务执行完成后,才会去执行下一任务

    c.如果当前调度的任务是异步的执行的,只要底层线程池中有可用的线程,就会马上去执行任务,不需要等待上一个任务的完成。

    dispatch_queue_t queue=dispatch_queue_create("zzh", DISPATCH_QUEUE_CONCURRENT);

    3.主队列特点:

    a.专门用来调度主线程任务的队列

    b.不会开启线程

    c.以先进先出的方式,在主线程空闲时,才会调度队列中的任务在主线程执行

    d.如果当前主线程在执行任务,那么无论主队列中被添加了什么任务,都不会被调度

    dispatch_queue_t  queue =dispatch_get_main_queue();

    4.全局队列(是系统为了方便程序员开发提供的,其工作表现与并发队列一致)与并发队列的区别:

    1.全局队列:

    1.1没有名称

    1.2无论ARC还是MRC都不需要考虑释放内存的问题

    1.3日常开发建议使用全局队列2.并发队列

    2.并发队列

    2.1有名字,和NSThread的name属性类似

    2.2如果在MRC开发的时候,需要使用dispatch_release(q);来释放相对的对象

    2.3dispatch_barrier必须使用自定义的并发队列

    2.4开发第三方框架的时候,建议使用并发队列

    dispatch_queue_t   queue =dispatch_get_global_queue(0,0);

    相关文章

      网友评论

          本文标题:GCD

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