1、抛出异常:add(e),remove(),element()
2、返回特殊值:offer(e),poll(),peek()
3、阻塞:put(e),take()
4、规定时间内阻塞:offer(e,time,unit),poll(e,time,unit)
public boolean offer(E e){
if(e==null) throw new NullPointerException();
final ReentrantLock lock =this.lock;
lock.lock();
try{
if(count==items.length){
return false;
}else{
instert(e);
return true;
}
}finally{
lock.unlock();
}
}
public void put(E e){
if(e==null) throw new NullPointerException();
final E[] items =this.items;
final ReentrantLock lock=this.lock;
lock.lockInterruptibly();
try{
try{
while(count==items.length){
notFull.await();
}
}catch(InterruptedException e){
notFull.signal();
throw e;
}
insert(e);
}finally{
lock.unlock();
}
}