读书人

有界缓存兑现基类

发布时间: 2013-09-05 16:02:07 作者: rapoo

有界缓存实现基类
public abstract class BaseBoundedBuffer<V>
{
private final V[] buf;

private int tail;

private int head;

private int count;

@SuppressWarnings("unchecked")
protected BaseBoundedBuffer(int capacity)
{
this.buf = (V[])new Object[capacity];
}

protected synchronized final void doPut(V v)
{
buf[tail] = v;

if (++tail == buf.length)
{
tail = 0;
}

++count;
}

protected synchronized final V doTake()
{
V v = buf[head];

buf[head] = null;

if (++head == buf.length)
{
head = 0;
}

--count;

return v;
}

public synchronized final boolean isFull()
{
return count == buf.length;
}

public synchronized final boolean isEmpty()
{
return count == 0;
}
}

读书人网 >编程

热点推荐