Java 为什么Object.wait()是final?
在Java中,对象的wait()方法被实现为final方法的原因是什么?是否不需要重写wait()?我们从Java中的synchronized method或synchronized block调用Java中的wait()、notify()或notifyAll方法,以避免:Java 为什么Object.wait()是final?,java,Java,在Java中,对象的wait()方法被实现为final方法的原因是什么?是否不需要重写wait()?我们从Java中的synchronized method或synchronized block调用Java中的wait()、notify()或notifyAll方法,以避免: Java中的IllegalMonitorStateException,如果我们不 从synchronized调用wait()、notify()或notifyAll()方法 上下文 等待和通知方法之间的任何潜在竞争条件 在Ja
请参阅Doug Lea的《Java并发编程(第二版)》第3.2.3节中的更多内容。Java语言规范描述了同步是如何工作的。在许多概念中,例如对象监视器,还有同步的概念 每个对象除了具有关联的监视器外,还具有 关联的等待集。等待集是一组线程 首次创建对象时,其等待集为空 向等待集添加线程和从等待集中删除线程的操作是 原子。等待集仅通过方法进行操作
Object.wait
、Object.notify
和Object.notifyAll
如果您能够重写该方法,您可能会发现自己找到了一种中断同步的方法。Java不允许这样做。它必须控制确切的实现,这就是为什么它是
final
,它不仅是final
,而且是native
。它是需要在较低的级别。