国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > java ArrayBlockingQueue的方法及不足点

java ArrayBlockingQueue的方法及不足点

java ArrayBlockingQueue

头像

小妮浅浅

2021-01-11 14:22:423089浏览 · 0收藏 · 0评论

提到ArrayBlockingQueue的方法,想必大家都不陌生,我们在入队和出队的时候,接触了不少这方面的函数。当然ArrayBlockingQueue中的方法也不止于此,今天我们就全部为大家罗列出来,也算是做一个学习方向上的指引。然后就其中的peek方法带来实例介绍,并说明ArrayBlockingQueue使用的不足之处。

1.ArrayBlockingQueue函数列表

// 创建一个带有给定的(固定)容量和默认访问策略的 ArrayBlockingQueue。
ArrayBlockingQueue(int capacity)
// 创建一个具有给定的(固定)容量和指定访问策略的 ArrayBlockingQueue。
ArrayBlockingQueue(int capacity, boolean fair)
// 创建一个具有给定的(固定)容量和指定访问策略的 ArrayBlockingQueue,它最初包含给定 collection 的元素,并以 collection 迭代器的遍历顺序添加元素。
ArrayBlockingQueue(int capacity, boolean fair, Collection<? extends E> c)
 
// 将指定的元素插入到此队列的尾部(如果立即可行且不会超过该队列的容量),在成功时返回 true,如果此队列已满,则抛出 IllegalStateException。
boolean add(E e)
// 自动移除此队列中的所有元素。
void clear()
// 如果此队列包含指定的元素,则返回 true。
boolean contains(Object o)
// 移除此队列中所有可用的元素,并将它们添加到给定 collection 中。
int drainTo(Collection<? super E> c)
// 最多从此队列中移除给定数量的可用元素,并将这些元素添加到给定 collection 中。
int drainTo(Collection<? super E> c, int maxElements)
// 返回在此队列中的元素上按适当顺序进行迭代的迭代器。
Iterator<E> iterator()
// 将指定的元素插入到此队列的尾部(如果立即可行且不会超过该队列的容量),在成功时返回 true,如果此队列已满,则返回 false。
boolean offer(E e)
// 将指定的元素插入此队列的尾部,如果该队列已满,则在到达指定的等待时间之前等待可用的空间。
boolean offer(E e, long timeout, TimeUnit unit)
// 获取但不移除此队列的头;如果此队列为空,则返回 null。
E peek()
// 获取并移除此队列的头,如果此队列为空,则返回 null。
E poll()
// 获取并移除此队列的头部,在指定的等待时间前等待可用的元素(如果有必要)。
E poll(long timeout, TimeUnit unit)
// 将指定的元素插入此队列的尾部,如果该队列已满,则等待可用的空间。
void put(E e)
// 返回在无阻塞的理想情况下(不存在内存或资源约束)此队列能接受的其他元素数量。
int remainingCapacity()
// 从此队列中移除指定元素的单个实例(如果存在)。
boolean remove(Object o)
// 返回此队列中元素的数量。
int size()
// 获取并移除此队列的头部,在元素变得可用之前一直等待(如果有必要)。
E take()
// 返回一个按适当顺序包含此队列中所有元素的数组。
Object[] toArray()
// 返回一个按适当顺序包含此队列中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
<T> T[] toArray(T[] a)
// 返回此 collection 的字符串表示形式。
String toString()

2.peek方法实例

读取队列中队首的元素,不会删除该元素。

//获取元素,元素不出队
public E peek() {
        //上锁
        final ReentrantLock lock = this.lock;
        lock.lock();
        try {
            //调用itemAt方法获取元素
            return itemAt(takeIndex); // null when queue is empty
        } finally {
            //释放锁资源
            lock.unlock();
        }
    }

3.ArrayBlockingQueue缺点

1)队列长度固定且必须在初始化时指定,所以使用之前一定要慎重考虑好容量;

2)如果消费速度跟不上入队速度,则会导致提供者线程一直阻塞,且越阻塞越多,非常危险;

3)只使用了一个锁来控制入队出队,效率较低

以上就是java ArrayBlockingQueue的方法及不足点,大家可以对其中的方法保存下来,方便下次的查询和使用,同时不断学习ArrayBlockingQueue方法的实例操作,从而加深理解。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

我被5个男人躁一夜不收我怎么办 老公让我把B扒开他日 | 饥渴老翁一晚要了我三次| 屈从| 国产在线观看免费全集电视剧网站| 被两个男人吃奶三P| 蜜桃3D| 《荷尔蒙3》| 丝袜内衣女超薄全透明连身袜| 《火车服务》免费观看| 7C7PCCA片| 苏苏的骚浪短笔趣阁小说 | 水手服| 《艳乳欲乱2》动漫| 公交车上扒开腿做爰H漫画| 真人老太太实战镖客视频大全| 妈妈的新男友| 国产 欧美-区二区三区| 亚洲乱熟女一区二区三区山口珠理| 摸摸大扔子图片真实| 把女人弄爽特黄A大片视频| 两男一女一起做运动什么心理| 初二学生小馒头| 老婆同意了别人轮流联系我| 《酒店激战》动漫1-5集免费观..| 当着全班面被C到高潮哭视频| 《炸梨吧!巨棒》免费阅读漫画| 小奶球抖动舞蹈视频| 在办公室被CAO很爽很高H漫画| 天美麻花高清在线看电视剧| CSGO未满十八岁能玩多久| 樱花电影大全免费观看西瓜| 《健身房教练》第3季在线观看| 兄妹客厅当父母面爱叫啥| 2025国产拍视频最好的手机| 女人尝试到更粗大的心理变化| 三叶草M码与欧洲码的区别| 谷原希美| 男同| 深入无人区短剧免费高清观看| 啄木鸟军舰女兵3法版| 黑丝美女