Why isn't Object.notify() a synchronized method?

David M. Lloyd david.lloyd at redhat.com
Thu May 28 16:27:54 UTC 2015

Since most of the time you have to hold the lock anyway for other 
reasons, I think this would generally be an unwelcome change since I 
expect the cost of recursive lock acquisition is nonzero.

On 05/28/2015 11:08 AM, Ulf Zibis wrote:
> Hi all,
> in the Javadoc of notify(), notifyAll() and wait(...) I read, that this
> methods should only be used with synchronisation on it's instance.
> So I'm wondering, why they don't have the synchronized modifier out of
> the box in Object class.
> Also I think, the following note should be moved from wait(long,int) to
> wait(long):
> /The current thread must own this object's monitor. The thread releases
> ownership of this monitor and waits until either of the following two
> conditions has occurred://
> /
>   * /Another thread notifies threads waiting on this object's monitor to
> wake up either through a
>     call to the notify method or the notifyAll method./
>   * /The timeout period, specified by timeout milliseconds plus nanos
> nanoseconds arguments, has
>     elapsed. /
> Cheers,
> Ulf


More information about the core-libs-dev mailing list