Concurrent Queues and Skip Lists:Lock-Free Ends and Concurrent Order
Use ConcurrentLinkedQueue and ConcurrentLinkedDeque for non-blocking ends, and ConcurrentSkipListMap/Set when you need a concurrent sorted map — not a BlockingQueue and not a HashMap.
Read More