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

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

作者: 暗夜精灵_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一样了。

相关文章

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

    更新:关于GCD,还有两个需要说的: func dispatch_barrier_async(_ queue: d...

  • OKHTTP 线程 协程

    1、阻塞和挂起的区别: 线程的阻塞: 阻塞状态的线程的特点是:该线程放弃CPU的使用,暂停运行,只有等到导致阻塞的...

  • 理解java IO操作中的阻塞非阻塞同步异步

    以下均以读数据为例进行说明,写数据原理类似 阻塞和非阻塞阻塞和非阻塞用于描述操作过程中线程的状态阻塞就是指,IO操...

  • 腾讯面经

    阻塞、非阻塞、同步、异步 的区别 阻塞阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个...

  • 线程池

    [TOC] 线程池 1. 并发队列:阻塞队列和非阻塞队列 区别如下: 入队: 非阻塞队列:当队列中满了的时候,放入...

  • iOS开发多线程--线程状态

    线程简介 线程创建 线程的开启: 线程的运行和阻塞:(1)设置线程阻塞1,阻塞2秒 (2)第二种设置线程阻塞2,以...

  • Dialog与PopupWindow的对比

    AlertDialog和Popupwindow的区别:1)AlertDialog是非阻塞线程的,Popupwind...

  • IO:阻塞和非阻塞、同步和异步

    阻塞和非阻塞 阻塞的时候线程会被挂起 阻塞: 当数据还没准备好时,调用了阻塞的方法,则线程会被挂起,会让出CPU时...

  • Java基础面试高频问答题

    1、什么导致线程阻塞 一般线程中的阻塞: Socket客户端的阻塞: Socket服务器的阻塞: 什么导致线程阻塞...

  • 阻塞和非阻塞,同步和异步

    同步和异步是相对于操作结果来说,会不会等待结果返回阻塞和非阻塞是相对于线程是否被阻塞。其实,这两者存在本质的区别,...

网友评论

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

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