来自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的意思相关推荐

  1. 探索JAVA并发 - 并发容器全家福!

    作者:acupt,专注Java,架构师社区合伙人! 14个并发容器,你用过几个? 不考虑多线程并发的情况下,容器类一般使用ArrayList.HashMap等线程不安全的类,效率更高.在并发场景下,常 ...

  2. 无界阻塞队列 LinkedBlockingQueue 原理探究

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 本文介绍下使用独占锁实现的阻塞队列LinkedBlockingQueue的实现. 二. LinkedBlocking ...

  3. Java并发编程:阻塞队列

    2019独角兽企业重金招聘Python工程师标准>>> 本文先讲述一下java.util.concurrent包下提供主要的几种阻塞队列,然后分析了阻塞队列和非阻塞队列的中的各个方法 ...

  4. 操作系统学习笔记:进程同步

    互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据.维护一致性的问题,即进程同步. 从底层到高级应用,同步机制依次有临界区.信号量.管程.原子事务. 1.临界区 每个 ...

  5. 死磕Java并发:J.U.C之阻塞队列:LinkedBlockingDeque

    作者:chenssy 来源:Java技术驿站 前面的BlockingQueue都是单向的FIFO队列,而LinkedBlockingDeque则是一个由链表组成的双向阻塞队列,双向队列就意味着可以从对 ...

  6. 让人抓头的Java并发(四) 阻塞队列--CPU飙升排查案例

    在上一篇文章中给大家介绍了牛批的AQS,大致讲解了JUC中同步的思路.本来还没想好这一篇应该写点什么,刚好上周某个同事的代码出现问题,排查后发现是使用阻塞队列不当导致的,所以本篇决定介绍下阻塞队列. ...

  7. 阻塞队列 java 源码_Java源码解析阻塞队列ArrayBlockingQueue常用方法

    本文基于jdk1.8进行分析 首先看一下ArrayBlockingQueue的成员变量.如下图.最主要的成员变量是items,它是一个Object类型的数组用于保存阻塞队列中的元素.其次是takeIn ...

  8. 关于Java集合的小抄--转

    原文地址:http://calvin1978.blogcn.com/articles/collection.html 在尽可能短的篇幅里,将所有集合与并发集合的特征.实现方式.性能捋一遍.适合所有&q ...

  9. Java Review - 并发编程_ArrayBlockingQueue原理源码剖析

    文章目录 概述 类图结构 构造函数 主要方法源码解析 offer操作 put操作 poll操作 take操作 peek操作 size 小结 概述 Java Review - 并发编程_LinkedBl ...

最新文章

  1. python长度分割文本_python 按照固定长度分割字符串的方法小结
  2. MySQL如何修改密码
  3. oracle数据库详细性能参数,ORACLE数据库性能参数的优化
  4. 【经典面试题一】最长公共子序列(经典动态规划题)
  5. 一窥谷歌神经机器翻译模型真面貌 其底层框架开源
  6. 一步步编写操作系统 35 内存为何要分页
  7. 工业互联网为什么落地这么难?
  8. 《华为交换机学习指南》学习笔记·二
  9. WinForm——MDI窗体
  10. NEO改进协议提案9(NEP-9)
  11. 为什么进入boot怎么只有计算机这个应用,电脑开机就进入bios的解决方法
  12. NLP(三十四)使用keras-bert实现序列标注任务
  13. java部门管理_系统管理模块_部门管理_实现基本的增删改查功能
  14. win7系统共享看不到别的计算机呢,系统之家win7系统在同一个工作组看不到其他电脑的解决方法...
  15. 2020部队技术干部计算机等级考试,带你了解专业技术军官
  16. android 恢复照片误删,安卓手机数据恢复:红米手机照片误删怎么恢复
  17. Activiti6--入门学习--结束事件
  18. 利用java格里高利公式求圆周率_C语言用下列公式求pi的近似值,直到最后一项的绝对值小于1e-4为止:...
  19. MSXML一般使用方法
  20. java 分子 分母_Java写一个类表示分数。分数由分子和分母组成。

热门文章

  1. Intellij IDEA最全的快捷键整理,中英双语
  2. 不同系统手机投屏电脑的不同方式
  3. Mac Apple Silicon M1/M2 homebrew miniforge conda pytorch yolov5深度学习环境搭建并简单测试MPS GPU加速
  4. android 自定义view实现应用宝进度条下载效果
  5. iphone释放空间_如何通过卸载未使用的应用程序来释放iPhone或iPad上的空间
  6. 求123456789-23456789-3456789-456789-...-9的值
  7. JS 计算单位 (万元, 亿元, 万亿)
  8. 微信搜一搜升级:可以搜索小视频和视频了
  9. 在java中哈希表判断某个元素是否存在的原理
  10. 【分享】给自己的博客园添加一个板娘(可选)