所以我在理解Java Monitor和synchronized关键字之间的区别时遇到了问题。
我在Java中看到,每个类基本上都是一个监视器。将其声明为
的目的是什么?monitor BankAccount{
double balance;
public void withdraw(){}
public void deposit(){}
}
是否会同步此类的每个方法,还是需要指定关键字?
答案 0 :(得分:3)
监视器可能与Java中的每个对象实例相关联。这包括Class
个对象。但是,没有关键字monitor
。在对声明为synchronized
的对象或使用显式synchronized
块的方法上调用方法时,监视器将进行同步。静态方法在与表示类类型的Class
对象关联的监视器上同步。
答案 1 :(得分:2)
monitor
不是关键字。默认情况下,没有任何内容同步您需要在方法上使用synchronized
关键字进行同步(或明确使用其他锁定机制,但它不会自动发生)。