java锁在等待唤醒机制中作用

时间:2024-12-07 20:37:14

等待的线程放在线程池wait()、notify()、notifyall()都使用在同步中,因为要对持有监视器(锁)的线程操作。所以要使用在同步中,因为只有同步才具有锁。

为什么这些操作的线程的方法要定义在Object类中呢?

因为这些方法在操作同步线程时,都必须要标识他们所操作的同一把锁.只有同一把锁上的被等待的线程才会被唤醒,才会被同一把锁上的notify()方法唤醒.不可以对不同锁中的线程进行唤醒.也就是说等待和唤醒都必须是同一把锁.而锁可以是任意对象,所以可以被任意对象调用.要是达到任意对象都可以调用的方法,那还是定义在Object类中最好.因为它才是万类之祖.