我的理解是,當一個對象方法是'synchronized'時,那麼只能在該方法中一次只允許一個線程。我測試了它,它工作。在Java中,當對象中的一個方法是'synchronized'時,所有方法都'synchronized'嗎?
但是我最近被告知,線程必須獲得控制來訪問同步方法的「鎖定」是「對象鎖定」。意思是對象的所有方法(同步或不同步)都以同步的方式有效地運行。
我測試了一下,用synchronized void method1();
和void method2();
,看來許多線程能夠同時輸入method2
。
這個人指的是什麼「對象鎖定」,它是如何工作的?
你說得對。此示例中method2未同步。 –