getClass()
.
If the class containing the synchronization is subclassed, the subclass
will
synchronize on a different class object. Usually the call to getClass()
can be replaced with a class literal expression, for
example String.class
. An even better solution is synchronizing on a private static final
lock object, access to
which can be completely controlled.
Example:
synchronized(getClass()) {}