Files
KLALB/src/org/kne/cloud/network/klalb/ByteArrayRecycle.java
T
2024-01-30 16:54:09 +08:00

29 lines
655 B
Java

package org.kne.cloud.network.klalb;
import java.util.concurrent.ConcurrentLinkedQueue;
public class ByteArrayRecycle {
private ConcurrentLinkedQueue<byte[]>rec=new ConcurrentLinkedQueue<>();
private int capacity;
private int length;
public ByteArrayRecycle(int capacity, int length) {
super();
this.capacity = capacity;
this.length = length;
}
public void recycle(byte[]b) {
if(b.length!=length)
throw new IllegalArgumentException("wrong length");
if(rec.size()<capacity) {
rec.add(b);
}
}
public byte[] create() {
byte[]b=rec.poll();
if(b==null) {
b=new byte[length];
}
return b;
}
}