`wait()`、`notify()` 和 `notifyAll()` 方法是对象级别的方法,它们不是 `Thread` 类的方法,而是定义在 `Object` 类中的。这是因为这些方法涉及线程间的协作和同步,而不是单个线程的控制。
这些方法的作用是在多个线程之间进行协调和通信,需要一个共享的锁对象来实现。因此,它们被定义在 `Object` 类中,因为所有的 Java 对象都可以作为锁,并且每个对象都有与之相关联的等待队列(wait set)和通知队列(notify set)。
`wait()` 方法用于使当前线程等待,释放对象的锁,进入对象的等待队列。
`notify()` 方法用于唤醒等待在对象上的单个线程,让其进入对象的通知队列。
`notifyAll()` 方法用于唤醒等待在对象上的所有线程,让它们进入对象的通知队列,等待竞争锁。
由于每个对象都有这些队列和相关的同步机制,因此这些方法是定义在 `Object` 类中的,而不是 `Thread` 类中。它们被用于实现线程间的协作和同步,可以在多个线程之间共享同一个对象的锁来进行通信和控制。