A modified version of ArrayBlockingQueue that allows one to set a max fill threshold  that determines when the queue will be emptied.