1
A
回答
4
不,假設兩種方法都在相同的類別(並且都是static
或兩者都不是static
)。 A方法只有在嘗試進入的線程可以獲得監視器對象的暫存(例如this
)時纔會進入。由於線程已經獲得了顯示器,它可以簡單地輸入第二種方法,而不會有任何麻煩。
+0
這就是所謂的可重入鎖。 – toto2 2012-01-16 13:32:36
0
如果thread 1
獲取了鎖A
並且還想鎖定B
。 Thread 2
在B
上鎖定,並且想要在A
上鎖定。 這是一個僵局。 否則,一切皆有可能。
0
這取決於:
- 如果這些被同步在兩個(或更多)不同的對象,
- 如果多個線程訪問這些對象,
- 並且如果這些對象的鎖順序可以變化的方法(在一個案例object1-> object2和其他案例object2-> object1)
然後是的,你可以得到死鎖。
但是,如果你正在同一個對象上談論同步方法,那麼就不可能發生死鎖:一個對象的監視器是可重入的:如果你已經持有它,你可以再次請求監視器(在同一個對象上輸入一個同步塊)。
相關問題
- 1. 同步方法調用另一個調用wait()的同步方法
- 2. 從另一個同步方法調用同步方法是否安全?
- 3. 等待一個同步方法,其中調用異步方法
- 4. 異步方法調用同步方法
- 5. 同步方法
- 6. 同步方法
- 7. 同步方法
- 8. 調用同步方法的同步方法,兩個同一對象
- 9. 在同步方法中調用異步
- 10. Java中同步方法ans同步塊
- 11. 在同步方法內同步(this)塊
- 12. 同步異步方法
- 13. 異步和同步方法
- 14. 從同步方法調用同步方法的同步成本是多少?
- 15. 從同步方法調用非同步方法
- 16. Java的同步方法調用不同步方法
- 17. 在同步方法中調用異步web api方法throws error
- 18. 同步ajax方法
- 19. Javascript同步方法
- 20. 同步方法VS同步塊
- 21. Java同步方法...不同步
- 22. 如果同步方法調用另一個非同步方法,是否存在對非同步方法的鎖定
- 23. 靜態同步方法與非靜態同步方法
- 24. 同步方法執行時,非同步方法是否阻塞
- 25. 同步調用handle_asynchronously方法
- 26. 同步調用redis方法
- 27. java中的方法同步
- 28. RXTX中的同步方法
- 29. WCF中的同步方法
- 30. C#中的同步方法
這兩種方法是同一類的一部分嗎? – unholysampler 2011-12-19 13:09:48
這取決於鎖對象。你能給出更多關於你的意思的細節,例如實例方法,靜態方法,帶有內部同步塊的方法嗎? – Thomas 2011-12-19 13:10:51