zoukankan      html  css  js  c++  java
  • JUC集合-BlockingQueue

    BlockingQueue 阻塞队列,支持两个附加操作。

    1,在队列为空时,获取元素的线程会等待对列变为非空。

    2,在队列为满时,存储元素的线程会等待对列可用。

    使用场景:

    生产者往对列里添加元素

    消费者从对列里拿元素

    操作

    方法处理 抛异常 返回特殊值 一直阻塞 超时退出
    入队 add(e) offer(e) put(e) offer(e, time, unit)
    出队 remove poll take poll(time, unit)
    查询 element peek    
    • 抛出异常:满队列时,执行入队会抛出异常;空队列时执行出队会抛出异常 。

    • 返回特殊值:入队操作会返回布尔值;出队操作成功返回操作值,失败返回空值。

    • 一直阻塞:满队列时,执行入队会进入条件等待队列,线程阻塞;空队列时,执行出队会进入条件等待队列,线程阻塞 。

    • 超时退出:满队列时,执行入队会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。

  • 相关阅读:
    「Poetize7」Freda的访客
    「Poetize8」Divisible
    「Poetize5」Vani和Cl2捉迷藏
    1082. 员工的重要度
    1080. 最大的岛
    1079. 连续子串计数(经典)
    1078. 数组的度
    1071. 词典中最长的单词
    1068. 寻找数组的中心索引
    1062. 洪水填充(经典)
  • 原文地址:https://www.cnblogs.com/zhaofeng555/p/8277526.html
Copyright © 2011-2022 走看看