Java 阻塞队列

 时间:2024-10-12 19:56:29

1、阻塞队列分类ArrayB盟敢势袂lockingQueue :一个由数组结构组成的有界阻塞队列。LinkedBlockingQueu髫潋啜缅e :一个由链表结构组成的有界阻塞队列。PriorityBlockingQueue :一个支持优先级排序的无界阻塞队列。DelayQueue:一个使用优先级队列实现的无界阻塞队列。SynchronousQueue:一个不存储元素的阻塞队列。LinkedTransferQueue:一个由链表结构组成的无界阻塞队列。LinkedBlockingDeque:一个由链表结构组成的双向阻塞队列。

Java 阻塞队列

2、四种处理方法队列的操作只是插入、删除、检测,而对这三种操作有对应的处理方法,1)抛出异常2)返回特殊值3)一直阻塞4)超时退出

Java 阻塞队列

3、抛出异常:是指当阻塞队列满时候,再往队列里插入元素,会抛出IllegalStateException(“Qu髫潋啜缅eue full”)异常。当队列为空时,从队列里获取元素时会抛出NoSuchElementException异常 。返回特殊值:插入方法会返回是否成功,成功则返回true。移除方法,则是从队列里拿出一个元素,如果没有则返回null一直阻塞:当阻塞队列满时,如果生产者线程往队列里put元素,队列会一直阻塞生产者线程,直到拿到数据,或者响应中断退出。当队列空时,消费者线程试图从队列里take元素,队列也会阻塞消费者线程,直到队列可用。超时退出:当阻塞队列满时,队列会阻塞生产者线程一段时间,如果超过一定的时间,生产者线程就会退出。

Java 阻塞队列

4、阻塞队列实现原理之添加元素put 方法实现代码,先获取了锁,并且获取的是可中断锁,然后判断当前元素个数是否等于数组的长度,如果相等,则调用 notFull.await() 进行等待,如果捕获到中断异常,则唤醒线程并抛出异常。当被其他线程唤醒时,通过 insert(e)方法插入元素,最后解锁。

Java 阻塞队列

5、阻塞队列实现原理之删除元素take 方法实现代码,take方法等待的是notEmpty信号。在take方法中,如果可以取元素,则通过extract方法取得元素,最后解锁。

Java 阻塞队列
  • Windows server 2008 R2新建DHCP地址池排除范围
  • IP 分片浅谈,详解IP分片的过程
  • ubuntu系统怎么连接windows系统创建的ftp下
  • Docker如何构建最小镜像(scratch)
  • debian安装软件包方式图解使用dvd镜像离线安装
  • 热门搜索
    鲁迅手抄报图片 法律在我心中手抄报 吸烟的危害手抄报 五年级手抄报大全 三年级手抄报保护环境 关于安全手抄报图片 科学幻想画手抄报 读书节手抄报资料 卫生城市手抄报 关于感恩的手抄报内容