你的位置:首页 > 软件开发 > Java > 【JAVA并发编程实战】11、有界缓存的实现

【JAVA并发编程实战】11、有界缓存的实现

发布时间:2016-11-27 16:00:05
1、有界缓存的基类package cn.xf.cp.ch14;/** * *功能:有界缓存实现基类 *时间:下午2:20:00 *文件:BaseBoundedBuffer.java *@author Administrator * * @param <V> */pub ...

1、有界缓存的基类

package cn.xf.cp.ch14;/** * *功能:有界缓存实现基类 *时间:下午2:20:00 *文件:BaseBoundedBuffer.java *@author Administrator * * @param <V> */public class BaseBoundedBuffer<V>{  private final V[] buf;  private int tail;  private int head;  private int count;    public BaseBoundedBuffer(int capacity)  {    //初始化数组    this.buf = (V[]) new Object[capacity];  }    //放入一个数据,final方法无法被重写  protected synchronized final void doPut(V v)  {    buf[tail] = v;    if(++tail == buf.length)    {      tail = 0;    }    //插入一个方法,总量++    ++count;  }    /**   * 取出一个数据   * @return   */  protected synchronized final V doTake()  {    V v = buf[head];    buf[head] = null;    if(++head == buf.length)    {      head = 0;    }    --count;    return v;  }    //通过对count的判断,来确定数组是否是满的  public synchronized final boolean isFull()  {    return count == buf.length;  }    public synchronized final boolean isEmpty()  {    return count == 0;  }}

原标题:【JAVA并发编程实战】11、有界缓存的实现

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。