using java.util.concurrent.ArrayBlockingQueue and java.util.concurrent.BlockingQueue