I\'m working on a standard Java system with critical timing requirements for my producers (1/100s of ms matters).
I have a producer placing stuff in a blocking queu
Well, there really aren't too many options. Let me go through the listed subclasses:
DelayQueue, LinkedBlockingDeque, PriorityBlockingQueue, and SynchronousQueue are all made for special cases requiring extra functionality; they don't make sense in this scenario.
That leaves only ArrayBlockingQueue and LinkedBlockingQueue. If you know how to tell whether you need an ArrayList or a LinkedList, you can probably answer this one yourself.
Note that in LinkedBlockingQueue, "linked nodes are dynamically created upon each insertion"; this might tend to push you toward ArrayBlockingQueue.