假設有2個類,父類和繼承父類的子類。 現在和兩個有同步的兩個方法。我的問題是哪個對象鎖將用於鎖定此同步方法我創建對象像:父p = new Child(); 是父對象鎖還是子對象鎖?java中繼承的同步
1
A
回答
4
沒有父對象鎖或子對象鎖。只有一個鎖,對象's。在這種情況下,它將是p
's。
如果另一個線程鎖定了孩子的同步方法,線程將在進入父類的同步方法時阻塞,反之亦然。
2
沒有單獨的父和子鎖。該對象只有一個鎖。無論繼承層次結構如何,對象的所有同步方法和對象上同步的所有同步塊都使用相同的鎖。
1
我認爲人們在這裏感到困惑的原因是:類繼承繼承實例字段。但對於方法,它只會繼承方法實現。所以只有鎖正在使用,在你的情況下是p。讓我知道它是否合理。
此外,使用繼承進行其他鎖定並不是一個好主意。使用組合 - 裝飾模式。請參見JCIP第4.4.1節
相關問題
- 1. 同步在Java中繼承嗎?
- 2. 「繼承」在java中沒有繼承的相同代碼
- 3. Java中的繼承
- 4. Java中的繼承
- 5. Java繼承與C#繼承
- 6. 繼承在Java中
- 7. 繼承在Java中
- 8. 繼承UINavigationController的步驟
- 9. Java中的繼承問題
- 10. Java語言中的繼承
- 11. Java中的泛型繼承
- 12. Java中Bean類的繼承
- 13. java中的繼承和arraylist
- 14. java中的繼承問題
- 15. eclipse中的Java類繼承
- 16. Java中的繼承問題
- 17. Android/Java中的多繼承
- 18. Java中的繼承 - 2類
- 19. @WebService繼承Java的
- 20. Java繼承
- 21. Java繼承
- 22. Java繼承類
- 23. Java繼承
- 24. Java繼承
- 25. Java繼承
- 26. Java繼承
- 27. 類繼承java
- 28. Java類繼承
- 29. Java super()繼承
- 30. 繼承在Java
對於同步實例方法,它總是接收方對象的固有鎖定。引用類型無關緊要。 – awksp