赞
踩
想栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除在另一端进行,遵循先进先出,后进后出原则,就像排队一样
1、打印机队列
2、还有之前线程里面讲到的,线程池的实现,有有界的和无界的阻塞队列
其中ArrayBlockQueue的源码,在并发的时候已经介绍过了,可以参考https://blog.csdn.net/qq_22798455/article/details/81636772
ConcurrentLinkedQueue参考
https://blog.csdn.net/qq_22798455/article/details/81637397
看一下优先级队列
public PriorityBlockingQueue() {
this(DEFAULT_INITIAL_CAPACITY, null);
}
public PriorityBlockingQueue(int initialCapacity) {
this(initialCapacity, null);
}
//最终都是初始化这一个构造函数,通过一个Comparator来排列队列中的数据
public PriorityBlockingQueue(int initialCapacity,
Comparator<? super E> comparator) {
if (initialCapacity < 1)
throw new IllegalArgumentException();
this.lock = new ReentrantLock();
this.notEmpty = lock.newCondition();
this.comparator = comparator;
//数组实现
this<

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。