notEmpty和notFull的意思
来自stackoverflow:
One which threads putting values will wait on for space to be available to put, that's notFull
.
One which threads reading values will wait on for an item to be added, that's notEmpty
.
根据《java并发编程之美》中:
notEmpty和notFull是条件变量,它们内部都有一个条件队列用来存放出队和入队时被阻塞的线程。
简单来说:
当某线程要插入新元素但是队列已满,那么阻塞并将其放入notFull内部维护的条件队列中进行等待,直到有线程取出了元素并且调用了notFull的signal方法(表示现在已经不是满的了)。
相对的,
当某线程需要从队列取出元素但是队列是空的,那么阻塞并将其放入notEmpty内部维护的条件队列中进行等待,直到有线程插入了元素并且调用了notEmpty的signal方法(表示现在已经不是空的了)。
notEmpty和notFull的意思相关推荐
- 探索JAVA并发 - 并发容器全家福!
作者:acupt,专注Java,架构师社区合伙人! 14个并发容器,你用过几个? 不考虑多线程并发的情况下,容器类一般使用ArrayList.HashMap等线程不安全的类,效率更高.在并发场景下,常 ...
- 无界阻塞队列 LinkedBlockingQueue 原理探究
2019独角兽企业重金招聘Python工程师标准>>> 一.前言 本文介绍下使用独占锁实现的阻塞队列LinkedBlockingQueue的实现. 二. LinkedBlocking ...
- Java并发编程:阻塞队列
2019独角兽企业重金招聘Python工程师标准>>> 本文先讲述一下java.util.concurrent包下提供主要的几种阻塞队列,然后分析了阻塞队列和非阻塞队列的中的各个方法 ...
- 操作系统学习笔记:进程同步
互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据.维护一致性的问题,即进程同步. 从底层到高级应用,同步机制依次有临界区.信号量.管程.原子事务. 1.临界区 每个 ...
- 死磕Java并发:J.U.C之阻塞队列:LinkedBlockingDeque
作者:chenssy 来源:Java技术驿站 前面的BlockingQueue都是单向的FIFO队列,而LinkedBlockingDeque则是一个由链表组成的双向阻塞队列,双向队列就意味着可以从对 ...
- 让人抓头的Java并发(四) 阻塞队列--CPU飙升排查案例
在上一篇文章中给大家介绍了牛批的AQS,大致讲解了JUC中同步的思路.本来还没想好这一篇应该写点什么,刚好上周某个同事的代码出现问题,排查后发现是使用阻塞队列不当导致的,所以本篇决定介绍下阻塞队列. ...
- 阻塞队列 java 源码_Java源码解析阻塞队列ArrayBlockingQueue常用方法
本文基于jdk1.8进行分析 首先看一下ArrayBlockingQueue的成员变量.如下图.最主要的成员变量是items,它是一个Object类型的数组用于保存阻塞队列中的元素.其次是takeIn ...
- 关于Java集合的小抄--转
原文地址:http://calvin1978.blogcn.com/articles/collection.html 在尽可能短的篇幅里,将所有集合与并发集合的特征.实现方式.性能捋一遍.适合所有&q ...
- Java Review - 并发编程_ArrayBlockingQueue原理源码剖析
文章目录 概述 类图结构 构造函数 主要方法源码解析 offer操作 put操作 poll操作 take操作 peek操作 size 小结 概述 Java Review - 并发编程_LinkedBl ...
最新文章
- python长度分割文本_python 按照固定长度分割字符串的方法小结
- MySQL如何修改密码
- oracle数据库详细性能参数,ORACLE数据库性能参数的优化
- 【经典面试题一】最长公共子序列(经典动态规划题)
- 一窥谷歌神经机器翻译模型真面貌 其底层框架开源
- 一步步编写操作系统 35 内存为何要分页
- 工业互联网为什么落地这么难?
- 《华为交换机学习指南》学习笔记·二
- WinForm——MDI窗体
- NEO改进协议提案9(NEP-9)
- 为什么进入boot怎么只有计算机这个应用,电脑开机就进入bios的解决方法
- NLP(三十四)使用keras-bert实现序列标注任务
- java部门管理_系统管理模块_部门管理_实现基本的增删改查功能
- win7系统共享看不到别的计算机呢,系统之家win7系统在同一个工作组看不到其他电脑的解决方法...
- 2020部队技术干部计算机等级考试,带你了解专业技术军官
- android 恢复照片误删,安卓手机数据恢复:红米手机照片误删怎么恢复
- Activiti6--入门学习--结束事件
- 利用java格里高利公式求圆周率_C语言用下列公式求pi的近似值,直到最后一项的绝对值小于1e-4为止:...
- MSXML一般使用方法
- java 分子 分母_Java写一个类表示分数。分数由分子和分母组成。
热门文章
- Intellij IDEA最全的快捷键整理,中英双语
- 不同系统手机投屏电脑的不同方式
- Mac Apple Silicon M1/M2 homebrew miniforge conda pytorch yolov5深度学习环境搭建并简单测试MPS GPU加速
- android 自定义view实现应用宝进度条下载效果
- iphone释放空间_如何通过卸载未使用的应用程序来释放iPhone或iPad上的空间
- 求123456789-23456789-3456789-456789-...-9的值
- JS 计算单位 (万元, 亿元, 万亿)
- 微信搜一搜升级:可以搜索小视频和视频了
- 在java中哈希表判断某个元素是否存在的原理
- 【分享】给自己的博客园添加一个板娘(可选)