LinkedBlockingDeque. / - putFirst(e)/takeFirst() putLast(e)/takeLast() - - Comparator . - , OutOfMemoryError.
edit :
-, ExecutorService
ExecutorService executorService = new ThreadPoolExecutor(1, 1, 1, TimeUnit.SECONDS, workQueue);
-, : workQueue?
workQueue BlockingQueue, LinkedBlockingDeque, , offer(), ThreadPoolExecutor , :
public boolean offer(E e) {
if(doNow)
return linkedBlockingDequeInstance.offerFirst(e);
else
return linkedBlockingDequeInstance.offerLast(e);
}
, - , . , .