MultiPriorityBlockingQueue

This method will create a Queue that accepts objects with only the priorities specified.
If a object is submitted with a different priority it will result in an
IllegalArgumentException. If the algorithm is null, this queue will use the
PRRNextQueueAlgorithm.

offer

Try to add the element within the given time period. Wait the specified time for
space to be available. This method will put the object in to the internal queue with the
corresponding priority. This method blocks only if that internal queue is full.