當一個線程進行一個對象的synchronized方法之后,其他線程完全有可能再次進入該對象的其他方法。
不過要分幾種情況來看:
1、如果其他方法沒有使用synchronized關鍵字修飾,則可以進入。
2、如果當前線程進入的synchronized方法是static方法,其他線程可以進入其他synchronized修飾的非靜態方法;如果當前線程進入的synchronized方法是非static方法,其他線程可以進入其他synchronized修飾的靜態方法。
3、如果兩個方法都是靜態方法、或者都是非靜態方法,並且都使用了synchronized修飾,但只要在該方法內部調用了同步監視器的wait(),則其他線程依然可以進入其他使用synchronized方法修飾的方法。
4、如果兩個方法都是靜態方法、或者都是非靜態方法,並且都使用了synchronized修飾,而且沒有在該方法內部調用了同步監視器的wait(),則其他線程不能進入其他使用synchronized方法修飾的方法。