已解决
BlockingQueue解析
来自网友在路上 148848提问 提问时间:2023-11-02 16:59:12阅读次数: 48
最佳答案 问答题库488位专家为你答疑解惑
BlockingQueue
其实就是阻塞队列,是基于阻塞机制实现的线程安全的队列。
BlockingQueue
不同于普通的Queue
的区别主要是:
- 通过在入队和出队时进行加锁,保证了队列线程安全
- 支持阻塞的入队和出队方法:当队列满时,会阻塞入队的线程,直到队列不满;当队列为空时,会阻塞出队的线程,直到队列中有元素。
支持4种方法
BlockingQueue的5种实现类
ArrayBlockingQueue阻塞实现
public void put(E e) throws InterruptedException {checkNotNull(e);final ReentrantLock lock = this.lock;// 加锁lock.lockInterruptibly();try {while (count == items.length) {// 如果队列已满,线程阻塞,并添加到notFull条件队列中等待唤醒notFull.await();}// 如果队列未满,则调用enqueue方法进行入队操作enqueue(e);} finally {// 释放锁lock.unlock();}}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"BlockingQueue解析":http://eshow365.cn/6-30365-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!