为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?为什么他们必须在同步方法或者同步块中被调用?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里
线程通信的方法wait()、notify()和notifyAll()被定义在Object类中的原因是因为所有的Java对象都继承自Object类,这使得这些方法可以在任何Java对象上使用,从而实现了多线程间的通信。
wait()方法让当前线程进入等待状态,同时释放对象的锁,直到其他线程调用该对象的notify()或notifyAll()方法来唤醒该线程。notify()方法用于唤醒在该对象上调用wait()方法进入等待状态的一个线程,而notifyAll()方法则唤醒所有在该对象上调用wait()方法进入等待状态的线程。
下面是一个简单的例子来说明为什么这些方法被定义在Object类中:
public class Message {
private String message;
public