package com.brucezee.jspider.selenium.common;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Created by brucezee on 2017/1/12.
*/
public class LandlordBlockingQueue<T> extends LinkedBlockingQueue<T> {
private AtomicInteger count = new AtomicInteger(0);
private int capacity;
public LandlordBlockingQueue(int capacity) {
super(capacity);
this.capacity = capacity;
}
@Override
public boolean add(T t) {
if (isNeedMore()) {
count.incrementAndGet();
return super.add(t);
}
return false;
}
public synchronized boolean isNeedMore() {
return count.get() < capacity;
}
public void resetOne() {
count.decrementAndGet();
}
}