您的位置:首页 > 产品设计 > UI/UE

JUC集合-BlockingQueue

2018-01-12 20:10 323 查看
BlockingQueue 阻塞队列,支持两个附加操作。

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

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

使用场景:

生产者往对列里添加元素

消费者从对列里拿元素

操作

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

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

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

超时退出:满队列时,执行入队会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: