面试官: 阻塞队列的底层实现有了解过吗? 说说看
前言
目前正在出一个Java多线程专题长期系列教程,从入门到进阶含源码解读, 篇幅会较多, 喜欢的话,给个关注❤️ ~
本节以ArrayBlockingQueue为例, 带大家看下阻塞队列是如何实现,一起来看下吧~
ArrayBlockingQueue 源码分析
构造函数
同样的,我们先从它的构造函数看起
public void put(E e) throws InterruptedException {
checkNotNull(e);
final ReentrantLock lock = this.lock;
lock.lockInterruptibly();
try {
// 如果元素满了 就阻塞
while (count == items.length)
notFull.await();
// 否则入列
enqueue(e);
} finally {
lock.unlock();
}
}
结束语
本节主要给大家讲了ArrayBlockingQueue的源码实现,它的源码相对简单一些, 大家可以根据本节看下BlockingQueue其它的实现类。下一节, 带大家学习一下并发容器 ~

本篇文章来源于微信公众号: 程序员皮卡秋
微信扫描下方的二维码阅读本文

Comments NOTHING