[concurrency-interest] PriorityBlockingQueue uses a fair lock
joe.bowbeer at gmail.com
Wed May 5 20:46:42 EDT 2010
Switching the lock type was suggested in 2006, but after lengthy discussion
it was decided that adding a non-fair option would be safer.
We can't just switch in nonfair lock mainly because people
on uniprocessors may unknowingly rely on it to keep producer-consumer
chains more balanced. I know that this does arise because someone
once asked me why their program using ArrayBlockingQueue was causing
memory retention on uniprocessors but not multiprocessors. I told
him to use fair mode, which was an effective bandaid. (I hate using
fairness for such purposes, but it was better than him having to
On Wed, May 5, 2010 at 5:14 PM, David Holmes wrote:
> Hi Martin,
> > A colleague noticed that PriorityBlockingQueue's
> > internal lock is a fair ReentrantLock,
> > when a non-fair lock would be much faster
> > and usually "fair" enough. Is there some history here?
> Yes but even when it was discussed by the EG on January 11 2006 the history
> had been lost somewhat.
> > Should we add a non-fair option for constructing PBQ?
> Yes. This addition was deemed too-late for Java 6 inclusion, but should
> been listed for Java 7.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Concurrency-interest