A generic bounded blocking Priority-Queue.
The elements of the priority queue are ordered according to the Comparator
provided at queue construction time.
If multiple elements have the same priority this queue orders them in
FIFO (first-in-first-out) manner.
The head of this queue is the least element with respect to the specified
ordering. If multiple elements are tied for least value, the head is the
first one inserted.
The queue retrieval operations poll, remove, peek, and element access the
element at the head of the queue.