ArrayBlockingQueue
同步队列超出长度时,不同的返回形式可以分为以下四种。
| 会抛异常 | 不会抛异常,有返回值 | 死等,直到可以插入值或者取到值 | 设置等待超时时间 | |
| 添加方法 | add() | offfer() | put() | offer(E e,long timeout, TimeUnit unit) |
| 删除方法 | remove() | poll() | take() | poll(long timeout, TimeUnit unit) |
add() & remove():
- add()方法没有返回值
- remove()删除队列元素并返回。
//创建一个长度为3的队列
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(3);
queue.add("a");
queue.add("b");
queue.add("c");//存放的元素个数超过队列长度时抛出异常
//java.lang.IllegalStateException: Queue full
//queue.add("d");System.out.println(queue.remove());
System.out.println(queue.remove());
System.out.println(queue.remove());//取出队列元素,为空时抛出异常,java.util.NoSuchElementException
//System.out.println(queue.remove());
offer() & pull()
- offer()存储成功时返回true,失败返回false
- pull()取出元素,队列为空时返回null
//创建一个长度为3的队列
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(3);
System.out.println(queue.offer("a"));
System.out.println(queue.offer("b"));
System.out.println(queue.offer("c"));//存放的元素个数超过队列长度时,返回false
System.out.println(queue.offer("d"));System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());//队列为空时返回null
System.out.println(queue.poll());
put() & take()
- put()存放元素队列满时,将无限期等待,直到有空位
- take()取出元素队列为空时,将无限期等待,直到取到
//创建一个长度为3的队列
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(3);
queue.put("a");
queue.put("b");
queue.put("c");
//没有位置时将阻塞,无限期等待
//queue.put("d");System.out.println(queue.take());
System.out.println(queue.take());
System.out.println(queue.take());
//队列为空时将阻塞,无限期等待
//System.out.println(queue.take());
offer(E e,long timeout, TimeUnit unit) & pull(long timeout, TimeUnit unit)
- offer()中e为要存放的元素,timeout为等待超时时间,unit为等待超时时间单位(天、时、分、秒、毫秒)
- pull()中timeout、unit与offer()意思一样
//创建一个长度为3的队列
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(3);
System.out.println(queue.offer("a"));
System.out.println(queue.offer("b"));
System.out.println(queue.offer("c"));//存放的元素个数超过队列长度时,等待3秒,还不能存,返回false
System.out.println(queue.offer("d", 3, TimeUnit.SECONDS));System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());队列为空时,等待3秒,还为空则返回null
System.out.println(queue.poll(3,TimeUnit.SECONDS));
相关文章:
ArrayBlockingQueue
同步队列超出长度时,不同的返回形式可以分为以下四种。 会抛异常不会抛异常,有返回值死等,直到可以插入值或者取到值设置等待超时时间添加方法add()offfer()put()offer(E e,long timeout, TimeUnit unit)删除方法remove()poll()take()poll(l…...
DeepLabV3+:对预测处理的详解
相信大家对于这一部分才是最感兴趣的,能够实实在在的看到效果。这里我们就只需要两个.py文件(deeplab.py、predict_img.py)。 创建DeeplabV3类 deeplab.py的作用是为了创建一个DeeplabV3类,提供一个检测图片的方法,而…...
【Git】与“三年经验”就差个分支操作的距离
前言 Java之父于胜军说过,曾经一位“三年开发经验”的程序员粉丝朋友,刚入职因为不会解决分支问题而被开除,这是不是在警示我们什么呢? 针对一些Git的不常用操作,我们通过例子来演示一遍 1.版本回退 1.1已提交但未p…...
【经验】win10设置自启动
方法一:自启动文件夹 按下winr快捷键,弹出运行窗口,输入:shell:startup,弹出自启动文件夹窗口,将要开机自启的程序或快捷方式复制到此窗口中即可。 自启动文件夹路径:C:\Users\【用户名】\Ap…...
Linux SPI-NAND 驱动开发指南
文章目录Linux SPI-NAND 驱动开发指南1 概述1.1 编写目的1.2 适用范围1.3 相关人员3 流程设计3.1 体系结构3.2 源码结构3.3 关键数据定义3.3.1 flash 设备信息数据结构3.3.2 flash chip 数据结构3.3.3 aw_spinand_chip_request3.3.4 ubi_ec_hdr3.3.5 ubi_vid_hdr3.4 关键接口说…...
【THREE.JS学习(3)】使用THREEJS加载GeoJSON地图数据
本文接着系列文章(2)进行介绍,以VUE2为开发框架,该文涉及代码存放在HelloWorld.vue中。相较于上一篇文章对div命名class等,该文简洁许多。<template> <div></div> </template>接着引入核心库i…...
在windows搭建Redis集群并整合入Springboot项目
搭建集群配置规划Redis集群编写bat来启动每个redis服务安装Ruby安装Redis的Ruby驱动出现错误镜像过期SSL证书过期安装集群脚本redis-trib启动每个节点并执行集群构建脚本测试搭建是否成功配置springboot项目中配置规划Redis集群 我们搭建三个节点的集群,每个节点有…...
C++【内存管理】
文章目录C内存管理一、C/C内存分布1.1.C/C内存区域划分图解:1.2.根据代码进行内存区域分析二、C内存管理方式2.1.new/delete操作内置类型2.2.new和delete操作自定义类型三、operator new与operator delete函数四、new和delete的实现原理4.1.内置类型4.2.自定义类型4…...
Spring Cloud Nacos源码讲解(六)- Nacos客户端服务发现
Nacos客户端服务发现源码分析 总体流程 首先我们先通过一个图来直观的看一下,Nacos客户端的服务发现,其实就是封装参数、调用服务接口、获得返回实例列表。 但是如果我们要是细化这个流程,会发现不仅包括了通过NamingService获取服务列表…...
华为OD机试题,用 Java 解【计算最大乘积】问题
最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...
蓝牙运动耳机哪个好,比较好的运动蓝牙耳机
很多想选择蓝牙运动耳机的朋友都不知道应该如何选择,运动首先需要注意的就是耳机的防水能力以及耳机佩戴舒适度,在运动当中会排出大量的汗水,耳机防水等级做到越高,可以更好地保护耳机不受汗水浸湿,下面就分享五款适合…...
苹果设计可变色Apple Watch表带,智能穿戴玩法多
苹果最新技术专利显示,苹果正在为 Apple Watch 设计一款可变色的表带,可以根据佩戴者所穿着的服装、所在的环境等自动改变颜色。据介绍,这款表带里的灯丝具有电致变色功能,可以通过施加不同的电压,来实现显示多种颜色或…...
Elasticsearch集群Yellow亚健康状态修复
Elasticsearch集群Yellow亚健康状态修复问题背景排查流程解决办法问题背景 Elasticsearch集群健康状态为Yellow,涉及到多个索引。 排查流程 在浏览器打开Kibana Console进行问题排查,console地址为: http://{Kibana_IP}:5601/app/dev_too…...
第52讲:SQL优化之UPDATE更新操作的优化
文章目录 1.UPDATE更新语句的优化2.UPDATE更新语句优化案例1.UPDATE更新语句的优化 我们在使用UPDATE更新语句更改表中数据时,可能会导致表中产生行级锁或者是表级锁。 UPDATE语句的优化就是为了避免表中出现表级锁,从而影响并发的性能。 当UPDATE语句更新表数据时,WHERE…...
logback 自定义日志输出到数据库
项目日志格式 Spring Boot 的默认日志输出类似于以下示例: 2021-12-14 22:40:14.159 INFO 20132 --- [ main] com.kuangstudy.SpringbootApplication : Started SpringbootApplication in 2.466 seconds (JVM running for 3.617)输出以下项目&…...
< elementUi 组件插件: el-table表格拖拽修改列宽及行高 及 使用注意事项 >
elementUi 组件插件: el-table拖拽修改列宽及行高 及 使用注意事项👉 资源Js包下载及说明👉 使用教程> 实现原理> 局部引入> 全局引入 (在main.js中)👉 注意事项往期内容 💨Ǵ…...
微信小程序的分享朋友圈
分享朋友圈官方API:分享到朋友圈 1、分享到朋友圈接口设置事项: 2、onShareTimeline()注意事项: 3、分享朋友圈后,测试发现,没有数据请求。 用户在朋友圈打开分享的小程序页面,并不会真正打开小程序&…...
华为OD机试真题Python实现【 寻找路径】真题+解题思路+代码(20222023)
寻找路径 题目 二叉树也可以用数组来存储,给定一个数组,树的根节点的值储存在下标 1, 对于储存在下标 n 的节点,他的左子节点和右子节点分别储存在下标 2*n 和 2*n+1, 并且我们用 -1 代表一个节点为空。 给定一个数组存储的二叉树,试求从根节点到最小的叶子节点的路径,…...
九头蛇hydra爆破http示例
使用hydra执行http表单暴力破解 通过浏览器自带分析得知: 提交地址:http://10.0.0.115/student_attendance/ajax.php?action=login 提交方式:POST 提交数据:username=a&password=a 服务响应:3 根据以上收集的信息就可以使用hydra进行密码爆破 hydra 10.0.0.115 http…...
jQuery基本使用
获取和设置元素内容学习目标能够知道获取和设置元素内容的操作1. html方法的使用jquery中的html方法可以获取和设置标签的html内容示例代码:<script>$(function(){var $div $("#div1");// 获取标签的html内容var result $div.html();alert(result);// 设置…...
Ardyno库:Dynamixel伺服电机的嵌入式底层通信框架
1. Ardyno库概述:面向Dynamixel伺服电机的嵌入式控制框架Ardyno是一个专为嵌入式平台设计的轻量级C/C库,用于精确、可靠地控制Robotis公司系列Dynamixel智能伺服电机(如AX-12A、MX-28、XL-320、XH430、XM430等)。其核心价值不在于…...
3步解锁Arduino红外遥控:终极实战指南
3步解锁Arduino红外遥控:终极实战指南 【免费下载链接】Arduino-IRremote Infrared remote library for Arduino: send and receive infrared signals with multiple protocols 项目地址: https://gitcode.com/gh_mirrors/ar/Arduino-IRremote 想要让Arduino…...
Fluxion多语言支持终极指南:从.lang文件到本地化shell脚本的完整实现
Fluxion多语言支持终极指南:从.lang文件到本地化shell脚本的完整实现 【免费下载链接】fluxion Fluxion is a remake of linset by vk496 with enhanced functionality. 项目地址: https://gitcode.com/gh_mirrors/fl/fluxion Fluxion是一款功能强大的无线网…...
5个React条件渲染技巧:从基础到实战的完整指南
5个React条件渲染技巧:从基础到实战的完整指南 【免费下载链接】react-fundamentals Material for my React Fundamentals Workshop 项目地址: https://gitcode.com/gh_mirrors/re/react-fundamentals React条件渲染是构建动态用户界面的核心技能,…...
新手友好:通过快马平台轻松复刻openclaw101.dev的入门级工具项目
作为一个刚接触编程的新手,想要学习开源项目确实会感到有些无从下手。最近我发现了一个叫openclaw101.dev的项目,看起来很有意思,但直接看源码有点吃力。好在朋友推荐了InsCode(快马)平台,让我能够轻松复刻类似的项目来学习。 项目…...
现货库存MAX3311EEUB+T由ADI推出的高性能、低功耗RS-232收发器芯片,专为便携式和高可靠性电子设备设计,在工业控制、通信终端及嵌入式系统中表现出色
MAX3311EEUBT 是一款由ADI推出的高性能、低功耗RS-232收发器芯片,专为便携式和高可靠性电子设备设计,在工业控制、通信终端及嵌入式系统中表现出色 。核心性能参数协议兼容性:完全符合EIA/TIA-232标准,支持RS-232电平转换…...
突破暗黑2单机限制:d2s-editor存档修改工具全解析
突破暗黑2单机限制:d2s-editor存档修改工具全解析 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾在暗黑破坏神2的世界中,为了一件心仪的装备而反复刷怪数小时?是否因角色属性点分配失…...
Android Studio中文语言包:突破本地化困境的社区解决方案
Android Studio中文语言包:突破本地化困境的社区解决方案 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 问题场景&am…...
快速验证openclaw技能安装:用快马平台一键生成环境配置与测试原型
最近在折腾机器人抓取相关的开发,需要验证openclaw这个技能库的安装效果。传统方式从零搭建环境特别耗时,光是处理各种依赖冲突就能耗掉半天。后来发现用InsCode(快马)平台可以快速生成验证原型,几分钟就搞定了环境配置和基础测试。这里分享下…...
别再自己写提示词了!用DeepSeek-V2规划,让墨刀AI生成你的APP原型图(附完整prompt模板)
用DeepSeek-V2重构提示词策略:打造高精度AI原型设计工作流 当墨刀AI生成的页面总与预期相差甚远时,问题往往不在工具本身,而在于我们传递需求的方式。传统"一句话需求"的粗放指令模式,就像让一位建筑师仅凭"想要栋…...
