美文网首页
GCD中的并行队列

GCD中的并行队列

作者: 不会打滚儿的狮子 | 来源:发表于2016-07-02 19:49 被阅读117次

#pragma mark -并行队列

- (void)gcdDemo2

{

// 1.并行队列

dispatch_queue_tq =dispatch_queue_create("myQueue",DISPATCH_QUEUE_CONCURRENT);

//非ARC中,需要自己释放队列

//    dispatch_release(q);

// 3.同步任务,不会开启新的线程

//在实际开发中,同步任务可以保证执行完成之后,才让后续的异步任务开始执行,用于控制任务之间的先后顺序

//在后台线程中,处理“用户登录”

for(inti =0; i <10; i++) {

dispatch_sync(q, ^{

NSLog(@"%@ - %d", [NSThreadcurrentThread], i);

});

}

// 2.异步任务,会在多条线程上工作,具体开多少条线程,由系统决定

//仍然是按照任务添加到队列中的顺序被调度,只是执行先后可能会有差异!

// ***能够将耗时的操作,放到子线程中工作

// ***与串行队列异步任务相比,并发性能更好!但是执行的先后顺序,不固定

for(inti =0; i <10; i++) {

dispatch_async(q, ^{

NSLog(@"%@ - %d", [NSThreadcurrentThread], i);

});

}

}

并行队列中的任务是多个任务同时执行的

但是如果异步任务前面有同步任务 就会先执行同步任务同步任务是按顺序执行的任务等他执行完了才会执行并行中的异步任务  (可以做到阻塞 控制任务的执行顺序)

如果异步任务后面有同步任务  两个任务会并行(同时)执行

相关文章

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

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

  • 多线程【转】

    文章目录GCD简介任务和队列GCD的使用步骤队列的创建方法任务的创建方法GCD的基本使用并行队列 + 同步执行并行...

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

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

  • GCD多线程问题整理

    1.GCD队列有哪几种类型?有哪几种队列? GCD队列分为串行队列、并行队列两种类型;队列有主串行队列、全局并行队...

  • GCD的学习笔记(One)

    并行和并发 GCD简介 GCD的任务 GCD的队列 GCD创建队列或获取队列的方法 任务的执行方式:同步执行(同步...

  • iOS多线程--GCD篇

    GCD 文章目录GCD简介任务和队列GCD的使用步骤队列的创建方法任务的创建方法GCD的基本使用并行队列 + 同步...

  • GCD死锁

    GCD死锁原因 GCD死锁的原因是队列阻塞,而不是线程阻塞! 串行和并行 串行和并行都是相对于队列而言的-队列(负...

  • iOS多线程--彻底学会多线程之『GCD』

    GCD 文章目录 GCD简介 任务和队列 GCD的使用步骤 队列的创建方法 任务的创建方法 GCD的基本使用 并行...

  • gcd多线程任务与队列组合分析

    关于gcd中串行队列并行队列,以及同步任务和异步任务的花式嵌套,分析执行结果 多线程调试常用代码: gcd的任务 ...

  • GCD中的并行队列

    #pragma mark -并行队列 - (void)gcdDemo2 { // 1.并行队列 dispatch_...

网友评论

      本文标题:GCD中的并行队列

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