线程安全随机队列

本文介绍如何利用Java的LinkedBlockingQueue创建一个线程安全且具备随机读取功能的队列。当队列满时,新元素会替换旧元素。队列的线程安全性由LinkedBlockingQueue保证,迭代操作也是安全的。
摘要由CSDN通过智能技术生成

有的时候,在某些场景下,我们需要这么一个队列
1、这个队列是线程安全的
2、来了最新元素我们需要把最新元素放入队列,如果队列满了,我们需要把队尾的元素给remove掉
3、我们需要随机读取这个队列中的一个元素

于是我们可以利用java现有的对象来完成,例如LinkedBlockingQueue
它能保证线程安全,符合第一点
它提供了操作的保证,即当队列满的时候,插入元素会报异常,能保证队列的大小
因此我们可以用while语句来实现第一点的功能
至于第三点,因BlckingQueue实现了Iterable接口,而且它是线程安全地,因此它可以保证迭代的安全性
基于这些分析,这样的队列的实现代码如下

/**
 * 以arrayBlockingQueue为父类来构造
 */
public class RandomQueue<E> extends ArrayBlockingQueue<E> {
   
    private static final long serialVe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值