> 首页 > 文章 > 八卦 > java双端队列作用

java双端队列作用

来源:网络 作者:网友上传 时间:06-18 手机版

LinkedBlockingDeque概述

LinkedBlockingDeque是由链表构成的界限可选的双端阻塞队列,支持O(1)的时间复杂度从两端插入和移除元素,如不指定边界,则为Integer.MAX_VALUE。

由一个ReentrantLock保证同步,使用conditions来实现等待通知。

linkLast

在last节点后加入节点node,更新last。如果插入之后超出容量,返回false。

private boolean linkLast(Node node) {// assert lock.isHeldByCurrentThread();if (count >= capacity)return false;Node l = last;node.prev = l;last = node;if (first == null)first = node;elsel.next = node;++count;notEmpty.signal();// 满足notEmpty条件return true;}

unlinkFirst

移除first节点,并返回其item值,如果队列为空,则返回full。

private E unlinkFirst() {// assert lock.isHeldByCurrentThread();Node f = first;if (f == null)return null;Node n = f.next;E item = f.item;f.item = null;f.next = f; // help GCfirst = n;if (n == null)last = null;elsen.prev = null;--count;notFull.signal();// 满足notFull条件return item;}

unlink

移除任意一个节点,注意这里并没有操作x本身的连接,因为它可能仍被iterator使用着。

void unlink(Node x) {// assert lock.isHeldByCurrentThread();Node p = x.prev;Node n = x.next;// 移除的是firstif (p == null) {unlinkFirst();// 移除的是last} else if (n == null) {unlinkLast();} else {// 移除的是中间节点p.next = n;n.prev = p;x.item = null;// Don't mess with x's links.They may still be in use by// an iterator.// 这里x的prev和next指针都没有改变,因为他们可能在被iterator使用--count;notFull.signal();}}

总结

LinkedBlockingDeque是由链表构成的界限可选的双端阻塞队列,支持O(1)的时间复杂度从两端插入和移除元素,如不指定边界,则为Integer.MAX_VALUE。

由一个ReentrantLock保证同步,使用conditions来实现等待通知。

上面介绍的所有操作基本上就是核心方法啦,诸如putFirst、putLast、takeFirst、takeLast等方法都会调用上面的核心方法,而且实现上面也是比较简单的,就是双端链表的基本操作,不懂的可以画画图帮助理解哈。

以上就是本站»java双端队列作用(java三种队列详解)的相关内容了,更多精彩请关注作者:万年知识

声明:本文由本站【创业者资源平台】作者编辑发布,更多技术关注万年技术!

相关推荐:

音乐剪切拼接软件有哪些

java双端队列作用

qq聊天记录查看器手机器

华为路由器管理软件app

小丸子工具箱怎么批量压缩视频

苹果解压软件mac哪个好用

中纪委发文要求专项整治粮仓“硕鼠”,10人受贿累计近亿!专家:要找到发生腐败的原因进行治理

首次!TikTok

标签: 队列 作用 java

声明:《java双端队列作用》一文由排行榜大全(网友上传 )网友供稿,版权归原作者本人所有,转载请注明出处。如果您对文章有异议,可在反馈入口提交处理!

最近更新

  • 音乐剪切拼接软件有哪些

    对于从摄像机、GoPro、无人机等拍摄的大型视频文件是非常巨大的,而且剪辑的速度很慢,有时候软件一不小心卡死了,又得重新来,带来很大的损失。这...

    八卦 日期:2023-06-18

  • 凌渡新车异味怎么快速去除

    凌渡新车异味怎么快速去除买新车的时候要注意通风,通风和空通风,这样可以去除一些异味。然而,许多车主一买回来就把胶卷贴在车上。这个时候,他...

    汽车 日期:2023-06-18

  • 512g能装几个大型游戏

    品牌型号:联想拯救者Y9000P 系统:Windows 11 512g能装几个大型游戏是不确定的,要根据大型游戏的具体大小决定,一般能装7-8个。按正常来讲512的固...

    百科 日期:2023-06-18

  • java双端队列作用

    LinkedBlockingDeque概述LinkedBlockingDeque是由链表构成的界限可选的双端阻塞队列,支持O(1)的时间复杂度从两端插入和移除元素,如不指定边...

    八卦 日期:2023-06-18

  • 夫妻阳康后怎么备孕

    夫妻阳康后双方都要做好孕前检查,男方需检查精液质量,女方则需做好卵泡监测。针对有顾虑、年轻、卵巢储备功能正常和不着急生育的人群,可以先...

    百科 日期:2023-06-18

  • 2023五一法定节假日是几天三薪

    根据安排,今年五一从4月29日至5月3日放假调休,乍一看连休五天,仔细一算,4月29日、30日原本就是周末,5月2日、3日是调休,要通过4月23日(星期日)、5...

    景点 日期:2023-06-18

  • 凌渡外观怎么样

    凌渡外观怎么样凌渡外观大气,标准的大众脸,车头镀铬进气格栅与犀利的LED大灯融为一体,使得车头视觉效果更加优雅。此外,尾灯、隐藏式排气管以及...

    汽车 日期:2023-06-18

  • 肇庆水月夜星湖门票购买入口

    肇庆水月夜星湖门票购买入口购票页面:点击进入   门票价格:五一包台套餐 999元、水月夜星湖表演剧场单人票 138元、汉服之美一醉千年 200元...

    景点 日期:2023-06-18

邮箱不能为空
留下您的宝贵意见