美文网首页85107915953c
多线程GCD的理解

多线程GCD的理解

作者: 火柴盒环游记 | 来源:发表于2020-02-16 18:17 被阅读0次

串行队列或者并发队列都会遵循FIFO(先进先出)的原则

- (void)test
{
    NSLog(@"Start");
    
    dispatch_sync(dispatch_get_main_queue(), ^{
      
    });
}
上述代码是典型的死锁案例

执行顺序是先执行Start,然后将block和主队列传给GCD的
dispatch_sync函数等待执行,直到它返回.

由于主队列属于串行队列,先进先出,不能并发执行,当前只能执行一个任务, test函数作为一个
待执行的任务添加在主队列,dispatch_sync函数携带的block任务被添加到test后面,需要等待
test执行结束后才能执行,而dispatch_sync函数特性是等待block执行完毕后返回(同步阻塞当
前线程),而dispatch_sync不返回,test函数也无往下进行,就出现了相互等待的现象,即死锁。

不定期更新中…

相关文章

  • OC-多线程GCD

    参考:GCD源码深入理解 GCDiOS多线程--彻底学会多线程之『GCD』关于iOS多线程,我说,你听,没准你就懂...

  • iOS进阶之多线程管理(GCD、RunLoop、pthread、

    深入理解RunLoopiOS多线程--彻底学会多线程之『GCD』iOS多线程--彻底学会多线程之『pthread、...

  • GCD相关知识点

    GCD相关知识点 多线程技术--GCD 深入学习GCD GCD 深入理解:第一部分 GCD 深入理解:第二部分 1...

  • 7.3 多线程-GCD

    多线程-GCD 多线程-GCD-串行并行 多线程-GCD.png GCD-线程的通讯、延时操作、定时器 GCD-线...

  • 理解GCD

    (1)博客:深入理解GCD 理解iOS中的线程池 多线程理解 ?:(1)信号量--...

  • 10.7 多线程 NSThread 同步, 异步

    多线程的三大类API NSThread,NSOperationQueue,GCD 多线程本身不是好理解,光是思想就...

  • iOS底层原理-多线程(GCD)

    多线程面试题 你理解的多线程?iOS的多线程方案有哪几种?你更倾向于哪一种?你在项目中用过 GCD 吗?GCD 的...

  • iOS多线程:『GCD』详尽总结

    iOS多线程:『GCD』详尽总结 iOS多线程:『GCD』详尽总结

  • 多线程

    你理解的多线程? iOS的多线程方案有哪几种?你更倾向于哪一种? 你在项目中用过 GCD 吗? GCD 的队列类型...

  • iOS-面试题 多线程(夯实基础学习笔记-温故知新4)

    你理解的多线程? iOS的多线程方案有哪几种?你更倾向于哪一种? 你在项目中用过 GCD 吗? GCD 的队列类型...

网友评论

    本文标题:多线程GCD的理解

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