阻塞线程和阻塞队例的区别

更新:关于GCD,还有两个需要说的:

func dispatch_barrier_async(_ queue: dispatch_queue_t, _ block: dispatch_block_t):

这个方法重点是你传入的queue,当你传入的queue是通过DISPATCH_QUEUE_CONCURRENT参数自己创建的queue时,这个方法会阻塞这个queue注意是阻塞 queue ,而不是阻塞当前线程),一直等到这个queue中排在它前面的任务都执行完成后才会开始执行自己,自己执行完毕后,再会取消阻塞,使这个queue中排在它后面的任务继续执行。

如果你传入的是其他的queue, 那么它就和dispatch_async一样了。

func dispatch_barrier_sync(_ queue: dispatch_queue_t, _ block: dispatch_block_t):

这个方法的使用和上一个一样,传入自定义的并发队列(DISPATCH_QUEUE_CONCURRENT),它和上一个方法一样的阻塞queue,不同的是 这个方法还会阻塞当前线程

如果你传入的是其他的queue, 那么它就和dispatch_sync一样了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学习多线程,转载两篇大神的帖子,留着以后回顾!第一篇:关于iOS多线程,你看我就够了 第二篇:GCD使用经验与技巧...
    John_LS阅读 637评论 0 3
  • 最近颇花了一番功夫把多线程GCD人的一些用法总结出来,一来帮自己巩固一下知识、二来希望能帮到对这一块还迷茫...
    人活一世阅读 297评论 1 1
  • iOS 多线程系列 -- 基础概述iOS 多线程系列 -- pthreadiOS 多线程系列 -- NSThrea...
    shannoon阅读 889评论 0 2
  • 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案...
    张战威ican阅读 615评论 0 0
  • 感情脆弱的时候比较怕冷
    凡夫俗子Au阅读 70评论 0 0