當我讀Java線程的概念,我有看到一個聲明即「當涉及到線程,很少保證」。可任何一個簡要的解釋。Java線程概念
Q
Java線程概念
-1
A
回答
2
它可能是試圖解釋的事實陳述的順序執行兩個線程不能保證,你不能依靠它即順序可能是一種特殊的方式在一個系統上,可能是在一個完全不同的機器具有不同的硬件。它甚至不能保證在同一個系統上,你將在多次運行中獲得相同的序列。
1
我想她的意思是,很少是在當一個線程將啓動並完成執行,除非你明確地以某種方式同步這些條件保證。如果多個線程同時讀取和寫入相同的數據,您也會失去對數據安全性的保證。
1
我還沒有看過這本書,它取決於更廣泛的背景。但它可能是在討論線程安全性以及如何在多線程環境中採取額外步驟來確保代碼是線程安全的 - 防止諸如死鎖,活鎖和競態危險之類的事情(所有這些都可能表現爲令人討厭的難以跟蹤的事情導致很多時間和頭痛)。所以試圖阻止這些事情發生在第一位比後來處理效果要好得多。
典型的(簡單的)例如可以由包含兩個字段,x和y A類來證明。當下面的方法被稱爲x和y均爲遞增:
public void inc() {
x++;
y++;
}
現在通常你會以爲這是一個原子操作,調用此方法的唯一結果是,X和Y都遞增。但是,在多線程環境中,這不能自動保證。在x遞增之後,有可能會產生當前線程,並且另一個線程可能會進入並以無效狀態使用該對象,這可能會導致問題。
這只是一個例子,還有很多其他不同類型和類別。總之,你沒有獲得任何形式的線程安全免費,所以很少有保證,如果你寫多線程代碼,你需要學習如何應對這些問題。
我建議在實踐書中的Java併發爲進一步讀,那就是解釋了線程問題非常好一個偉大的書。
相關問題
- 1. Java線程概念/演示
- 2. 線程概念
- 3. 線程概念
- 4. 多線程概念
- 5. java中多線程的概念
- 6. java多線程的核心概念
- 7. Wait()和Notify()概念 - Java多線程
- 8. C++程序線程概念
- 9. 概念線程問題
- 10. 線程和塊概念
- 11. 學習線程概念
- 12. C#:線程和多線程的概念
- 13. Java ArrayList概念
- 14. Java Array概念
- 15. 概念在Java
- 16. Java RMI的概念
- 17. LinkedList java Iterator.next概念?
- 18. 疑問,在線程的概念
- 19. 線程上的一些概念問題
- 20. 提升線程概念化/問題
- 21. JMS多線程概念與MQ
- 22. 何處使用多線程概念
- 23. 在Javascript中實現線程概念?
- 24. 線程是一個Windows概念嗎?
- 25. C語言中的線程概念#
- 26. 對多線程概念有點困惑
- 27. C#多線程概念問題
- 28. 線程池本地變量概念
- 29. 諾基亞QT SDK線程概念
- 30. Twitter離線網站概念
你指的是什麼文件? – 2011-02-02 18:29:41
scjp kathy's sierra book – satheesh 2011-02-02 18:31:34