首页 > 编程语言 >JAVA并发之PriorityBlockingQueue

JAVA并发之PriorityBlockingQueue

时间:2024-02-13 23:55:05浏览次数:37  
标签:JAVA 队列 阻塞 并发 挂号 PriorityBlockingQueue

PriorityBlockingQueue(优先阻塞队列)是Java并发包java.util.concurrent下面的一个工具类,它除了具有阻塞队列的功能外还具有以下特点:

  1. 对队列中的元素进行排序,如果未指定比较器,插入队列的元素必须实现Comparable接口
  2. 内部基于数组实现的最小二叉堆算法
  3. 队列的长度是可扩展的(类似ArrayList),上限为Integer.MAX_VALUE - 8

PriorityBlockingQueue例子

假设在医院挂号的场景,大家都在依次排队,这时候来了一位80岁以上老年人,我们应该优先让老年人挂号,代码可以这样实现:




参考链接:https://juejin.cn/post/7049935072970948622

标签:JAVA,队列,阻塞,并发,挂号,PriorityBlockingQueue
From: https://www.cnblogs.com/JavaYuYin/p/18014953

相关文章

  • Java基础
    java基础一、注释二、标识符和关键字关键字:标识符Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。标识符注意点:所有的标识符都应以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合......
  • JDK21报错 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTre
    JDK21报错java:java.lang.NoSuchFieldError:Classcom.sun.tools.javac.tree.JCTree$JCImportdoesnothavememberfield'com.sun.tools.javac.tree.JCTreequalid'Lombok版本兼容性的问题导致Maven依赖改为新版本<dependency><groupId>org.projectlombok&l......
  • javacv模块依赖简化
    前言JavaCV更新到1.5.x版本,依赖包也迎来了很大变化,体积也变大了不少。由于javacv跨平台,那么全部javacv依赖包下载下来后,整个javacv的包会特别巨大,接近1G.显然很多平台依赖包我们并不需要,而且我们开发时只需要自己本身开发平台的依赖包就可以了JavaCV1.5.x和之前版本已经不兼容J......
  • p5js: JavaScript 创意绘画
    p5js是一个免费开源的Javascript创意绘画工具,通过p5js可以实现代码绘画01鼠标变色鼠标触发绘画区域,即马上变色,松开恢复functionsetup(){createCanvas(400,400);//设置画布大小}functiondraw(){if(mouseIsPressed)//被鼠标触发{background(255,51,......
  • Java与SpringBoot网站的重构
    Java简介Java特点: Java的运行原理: SpringBoot网站的重构有源码的情况后台重构(mysql+maven+jdk+网站源码)将网站源码放入idea软件中查看重要配置文件:pom.xml和application.propertiespom.xml有网站的jdk版本和打包软件而application.properites文件中有着数据库的配......
  • Oracle Java SE Product Releases
    1.gotothemainpage[https://www.oracle.com/]2.thenclick'Products'tochoosetheJavaicon3.clickthe'OracleJavaSEPlatform'icon[https://www.oracle.com/java/]4.repeattheactionasbelow[https://www.oracle.com/java/t......
  • 51tampermonkey javascript hook介绍
     hookget参数 //==UserScript==//@nameGET请求参数钩取脚本//@namespacehttp://your-namespace.com//@version1.0//@description钩取GET请求参数并输出到控制台//@matchhttp://*/*//@matchhttps://*/*//@grant......
  • java面向对象
    一.什么是面向对象面向对象编程的本质是:以类的方式组织代码,以对象的组织(封装)代码。1.面向对象的三大特性:封装继承多态 二.super和this1.super关键字的用法有三种1.在子类的成员方法中访问父类的成员变量.2.在子类......
  • 【Java 并发】【队列应用】【二】Tomcat的NioEndPoint中ConcurrentLinkedQueue 的使用
    1 前言这一节我们讲解Tomcat的NioEndPoint中ConcurrentLinkedQueue的使用。2  Tomcat的容器结构本节讲解apache-tomcat-7.0.32-src源码中ConcurrentLinkedQueue的使用。首先介绍Tomcat的容器结构以及NioEndPoint的作用,以便后面能够更加平滑地切入话题,如图11-4所示......
  • 【Java 并发】【队列应用】【一】ArrayBlockingQueue 的使用-Logback异步日志打印
    1 前言看了那么多Java提供的队列工具,那么我们这节开始看看哪些地方用到了这些队列哈。这一节我们讲解logback异步日志打印中ArrayBlockingQueue的使用。2  异步日志打印模型概述在高并发、高流量并且响应时间要求比较小的系统中同步打印日志已经满足不了需求了,这是因为......