new java.util.BitSet and Synchronization

Michael Warres mpw at
Tue Oct 20 10:14:35 PDT 1998

Archie Cobbs writes:
> Parmelan, Edouard writes:
> > The problem is a possible dead lock, and I don't know how to workaround:
> > 
> > Imagine two BitSet a and b, and two threads t1 and t2.
> > t1 executes a.equals(b)
> > t2 executes b.equals(a)
> > 
> > equals() should lock a and b in the same order for the two threads
> > but I don't know how to check the order :(

Use System.identityHashCode() to get the unique hash codes for each BitSet, then
lock the BitSet with the lower identity hash value first.  This guarantees a
fixed locking order.


Mike Warres
Systems Programmer
Brown University Computer Science Department
mpw at

More information about the kaffe mailing list