14 }
有上述源码可知,add()和 remove()实现的关键,是来自java.util.Queue 接口的 offer()和
poll()方法。
offer():在队列尾插入一个元素。若成功便返回 true,若队列已满则返回 false。(This
method is generally preferable to method add(java.lang.Object) , which can fail to
insert an element only by throwing an exception.)
poll():同理,取出并删除队列头的一个元素。若成功便返回 true,若队列为空则返回
false。
这里使用的是ReentrantLock,在插入或者取出前,都必须获得队列的锁,以保证同步。
1 public boolean offer(E e) {
2 checkNotNull(e);
3 final ReentrantLock lock = this.lock;
4 lock.lock();
5 try {
6 if (count == items.length)
7 return false;
8 else {
9 insert(e);
10 return true;
11 }
12 } finally {
评论0
最新资源