BufferPool
作者:anotherbug 日期:2007-08-27 16:39:50
1 | import java.nio.ByteBuffer;
public class BufferPool
{
private RmmBuffer pool[];
private int buffSize;
private int fullSize;
private int currSize;
private int idleSize;
public BufferPool(int numOfBuffers, int bufferLength)
{
buffSize = bufferLength;
fullSize = numOfBuffers;
pool = new RmmBuffer[fullSize];
currSize = 0;
idleSize = 0;
}
public synchronized RmmBuffer getBuffer()
throws Error
{
if(idleSize > 0)
return pool[--idleSize];
if(currSize < fullSize)
{
RmmBuffer rb = new RmmBuffer(buffSize);
currSize++;
return rb;
} else
{
return null;
}
}
public synchronized void returnBuffer(RmmBuffer buffer)
{
_returnBuffer(buffer);
}
public void _returnBuffer(RmmBuffer buffer)
{
if(buffer == null)
{
return;
} else
{
buffer.bb.clear();
pool[idleSize++] = buffer;
return;
}
}
public int size()
{
return idleSize;
}
public int fullSize()
{
return fullSize;
}
public int getUtilization()
{
return (100 * (currSize - idleSize)) / fullSize;
}
}
|
1 | import java.nio.ByteBuffer;
public class RmmBuffer
{
public byte dataBuffer[];
public int dataLength;
public ByteBuffer bb;
public RmmBuffer(int size)
{
dataBuffer = new byte[size];
bb = ByteBuffer.wrap(dataBuffer);
}
public RmmBuffer(byte ba[])
{
dataBuffer = ba;
dataLength = ba.length;
bb = ByteBuffer.wrap(dataBuffer, 0, dataLength);
}
}
|
平均得分
(0 次评分)
评论: 0 | 查看次数: 1361
发表评论
订阅
上一篇
|

文章来自:
标签: 




