Java 阻塞队列

2025-05-24 17:03:52

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

Java 阻塞队列

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

Java 阻塞队列

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

Java 阻塞队列
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢