如果正在運行的線程訪問特定對象,因此它也鎖定該特定對象的字段成員?Java線程鎖
Q
Java線程鎖
0
A
回答
5
你是否顯式鎖定對象?你在使用嗎?
鎖定對象並不意味着鎖定其成員。
0
如果您正在鎖定有問題的對象,那麼另一個線程顯然無法獲得該鎖,但這不會限制字段成員的更改或修改。
1
同步建立在一個內部實體周圍,這個實體被稱爲內部鎖或監視器鎖。 (API規範通常將此實體簡稱爲「監視器」。)在同步的兩個方面(強制對象狀態的獨佔訪問和建立發生)之前,內部鎖都起作用,而這些關係對於可見性至關重要。
1
鎖只是一個鎖,它保證了唯一的事情就是隻有一個線程一次可以擁有它。編寫代碼確保您想要鎖定的內容實際上處於鎖定狀態由您決定。
所以,如果你寫:
class MyClass {
private int myvalue;
public synchronized void setValue(int newvalue) {
myvalue = newvalue;
}
}
然後可以確保只有一個線程一次可以寫入myvalue的。但是,如果您要公開myvalue或提供另一種寫入方式,則不會阻止其他線程同時寫入myvalue。編碼的邏輯取決於你。
相關問題
- 1. Java線程死鎖
- 2. Java,線程死鎖?
- 3. Java線程鎖住
- 4. Java鎖和解鎖不同的線程
- 5. 死鎖的線程java
- 6. 同步塊上的Java線程鎖
- 7. 多線程鎖定Java Swing GUI
- 8. Java線程的原因死鎖
- 9. Java問題 - 線程鎖和條件
- 10. 線程和鎖
- 11. Java多線程 - 檢測自動鎖定線程
- 12. Java擴展線程類中的線程死鎖
- 13. 解鎖其他線程擁有的鎖java
- 14. 線程固有鎖
- 15. Delphi線程死鎖
- 16. 線程鎖澄清
- 17. 線程鎖定CollectionViewSource
- 18. 3線程鎖定
- 19. Ruby線程死鎖
- 20. C#線程死鎖
- 21. 悲觀離線鎖(Java,Spring)
- 22. 多線程與鎖vs單線程?
- 23. 解鎖已經解鎖的線程
- 24. Python線程和鎖定:死鎖
- 25. 以編程方式確定哪個Java線程持有鎖
- 26. 死鎖 - 在Java EE Web應用程序中阻塞的線程
- 27. 多線程以及多進程的Java文件鎖定方式
- 28. Java程序,程序鎖定
- 29. 多線程自旋鎖?
- 30. Python中的線程鎖
你的問題是什麼? – 2011-02-02 17:57:56
我認爲答案是否定的,但在你形成一個連貫的問題之前,我不會發表一個答案。也可能有很多回答的問題已經提出了相同的問題。 – 2011-02-02 17:58:53