Java中的Monitor和Synchronized关键字

时间:2016-07-07 19:50:07

标签: java concurrency

所以我在理解Java Monitor和synchronized关键字之间的区别时遇到了问题。

我在Java中看到,每个类基本上都是一个监视器。将其声明为

的目的是什么?
monitor BankAccount{
   double balance;    

   public void withdraw(){}

   public void deposit(){}

}

是否会同步此类的每个方法,还是需要指定关键字?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

monitor不是关键字。默认情况下,没有任何内容同步您需要在方法上使用synchronized关键字进行同步(或明确使用其他锁定机制,但它不会自动发生)。