原因Java提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。如果线程需要等待某些锁那么调用对象中的wait()方法就有意义了。如果wait()方法定义在Thread类中,线程正在等待的是哪个锁就不明显了。简单的说,由于wait、notify和notifyAll都是锁级别的操作,所以把他们定在Object类中时因为锁属于对象。
微信扫一扫
原因Java提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。如果线程需要等待某些锁那么调用对象中的wait()方法就有意义了。如果wait()方法定义在Thread类中,线程正在等待的是哪个锁就不明显了。简单的说,由于wait、notify和notifyAll都是锁级别的操作,所以把他们定在Object类中时因为锁属于对象。
相关推荐