为什么没有';java完全遵循监视器的概念

为什么没有';java完全遵循监视器的概念,java,concurrency,synchronized,Java,Concurrency,Synchronized,根据我对监视器概念的理解,用Java术语来说,监视器具有以下属性: 监视器是一个只有私有字段的类 该类的每个对象都有一个关联的锁 所有方法都被该锁锁定 锁可以有任意数量的关联条件 但是java对象不同于监视器概念 字段不要求是私有的 方法不需要同步 当处理synchronized关键字时,锁可以有一个相关条件 为什么javasynchronized不允许访问多个相关条件?为什么java不完全遵守监视器概念的规则。我认为您的理解不正确。监视器可以是任何对象;它的字段是无关的。监视器不会固有地锁定任

根据我对监视器概念的理解,用Java术语来说,监视器具有以下属性:

监视器是一个只有私有字段的类

该类的每个对象都有一个关联的锁

所有方法都被该锁锁定

锁可以有任意数量的关联条件

但是java对象不同于监视器概念

字段不要求是私有的

方法不需要
同步

当处理
synchronized
关键字时,锁可以有一个相关条件


为什么java
synchronized
不允许访问多个相关条件?为什么java不完全遵守监视器概念的规则。

我认为您的理解不正确。监视器可以是任何对象;它的字段是无关的。监视器不会固有地锁定任何方法。监视器没有与之关联的任何条件(但是)。如果不需要线程安全,就没有理由使方法或块同步。同步在性能方面是有代价的。前四个声明的来源是什么?(monitor是一个只有私有字段的类,…)@ThomasKläger我读了Cay S的《核心java》一书Horstmann@VGR非常感谢您提供的信息!我认为你的理解不正确。监视器可以是任何对象;它的字段是无关的。监视器不会固有地锁定任何方法。监视器没有与之关联的任何条件(但是)。如果不需要线程安全,就没有理由使方法或块同步。同步在性能方面是有代价的。前四个声明的来源是什么?(monitor是一个只有私有字段的类,…)@ThomasKläger我读了Cay S的《核心java》一书Horstmann@VGR非常感谢您提供的信息!