今天爱分享给大家带来为什么线程通信的方法wait(), notify()和notifyAll()被定义在Object类里?【面试题详解】,希望能够帮助到大家。
在Java中,任意对象都可以当作锁来使用,由于锁对象的任意性,所以这些通信方法需要被定义在Object类里。
为什么wait(), notify()和notifyAll()必须在同步方法或者同步块中被调用?其目的在于确保等待线程从Wait()返回时能够感知通知线程对共享变量所作出的修改。如果不在同步范围内使用,就会抛出java.lang.IllegalMonitorStateException的异常。
原文链接:http://blog.itblood.com/1187.html,转载请注明出处。

![刀剑江湖路 Ver1.0.1.2 官方中文 绅士MOD整合版 地牢调教+角色美化+乱伦+额外角色+卖春[新整合][14.7G] [武侠RPG/中文/开放世界]](/wp-content/uploads/replace/2025/09/27/49a693a9aaf1c28f9ec9acf6fa989e7f.webp)