我有一個類的對象有一些狀態。 該對象有兩種方法(method1()
和method2()
),都改變了obj
的狀態。 method1()
已同步但method2()
未同步。如何在Java中實現類級同步?
現在兩個線程,線程1和threads2方法對象 - > threads1調用method1()
其同步 - >線程2調用method2()
這是不同步的。
我發現我的測試結果是method2()
正在執行,即使method1()
持有一個鎖。但我認爲,如果通過在方法上放置synchronized關鍵字來獲取整個對象的鎖定,則可以執行多少個其他方法。它應該等待。
您的意見非常感謝。
你以爲是錯的。由於'method2'不同步,它不會嘗試獲取鎖,如果該鎖已被'method1'獲取,將會阻止該鎖。 – Kayaman
有些代碼會很好。 –
@Kayman我剛剛發現現在爲我工作。謝謝 –