Java中的Monitor和Synchronized关键字

Java中的Monitor和Synchronized关键字,java,concurrency,Java,Concurrency,因此,我在理解Java监视器和synchronized关键字之间的区别时遇到了问题 在Java中,每个类基本上都是一个监视器。宣布它为 monitor BankAccount{ double balance; public void withdraw(){} public void deposit(){} } 这个类的每个方法都是同步的还是我需要指定关键字?monitor不是关键字。默认情况下不同步任何内容。您需要方法上的synchronized关键字才能使其同

因此,我在理解Java监视器和synchronized关键字之间的区别时遇到了问题

在Java中,每个类基本上都是一个监视器。宣布它为

monitor BankAccount{
   double balance;    

   public void withdraw(){}

   public void deposit(){}

}

这个类的每个方法都是同步的还是我需要指定关键字?

monitor
不是关键字。默认情况下不同步任何内容。您需要方法上的
synchronized
关键字才能使其同步(或显式使用其他锁定机制,但不会自动发生)。

monitor
不是关键字。默认情况下不同步任何内容。您需要方法上的
synchronized
关键字才能使其同步(或显式使用其他锁定机制,但不会自动发生)。

监视器可能与Java中的每个对象实例相关联。这包括
对象。但是,没有关键字
监视器
。当对声明为
synchronized
的对象调用方法或使用显式
synchronized
块时,监视器同步。静态方法在与表示类类型的
对象关联的监视器上同步。

监视器可能与Java中的每个对象实例关联。这包括
对象。但是,没有关键字
监视器
。当对声明为
synchronized
的对象调用方法或使用显式
synchronized
块时,监视器同步。静态方法在与表示类类型的
Class
对象关联的监视器上同步。

这可能有助于说明这不是有效的类声明,因为monitor在Java中不是关键字。对象有监视器,但类不是监视器。如果要同步方法,必须在每个方法上使用关键字。注意:要锁定两个帐户,您必须注意锁定顺序以避免死锁。这可能有助于避免此类声明无效,因为monitor在Java中不是关键字。对象有监视器,但类不是监视器。如果要同步方法,必须在每个方法上使用关键字。注意:要锁定两个帐户,您必须注意锁定顺序,以避免死锁。