美文网首页
阻塞线程和阻塞队例的区别

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

作者: 暗夜精灵_NightElf | 来源:发表于2017-12-20 14:10 被阅读0次

    更新:关于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一样了。

    相关文章

      网友评论

          本文标题:阻塞线程和阻塞队例的区别

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