我剛剛通讀了API documentation of the java.util.concurrent包。Java 7 API文檔中的「併發」和「線程安全」有什麼區別?
我的印象是「併發」和「線程安全」用於同義那裏。
實施例:
ConcurrentLinkedDeque - 基於鏈接節點的無界併發雙端隊列。 ConcurrentLinkedQueue - 基於鏈接節點的無界線線程安全隊列。
在併發包的範圍,我可以假設措辭線程安全和併發意味着同樣的事情?
我剛剛通讀了API documentation of the java.util.concurrent包。Java 7 API文檔中的「併發」和「線程安全」有什麼區別?
我的印象是「併發」和「線程安全」用於同義那裏。
實施例:
ConcurrentLinkedDeque - 基於鏈接節點的無界併發雙端隊列。 ConcurrentLinkedQueue - 基於鏈接節點的無界線線程安全隊列。
在併發包的範圍,我可以假設措辭線程安全和併發意味着同樣的事情?
是......併發包中的所有內容都可以在不同線程中同時使用;例如線程安全的。
具體來說,你鏈接到的「併發集合」部分在頁面上:
一個併發收集是線程安全的,而不是由一個單一的排斥鎖控制。
除此之外...... java.util.concurrent.*
包的全部目的是爲併發(多線程)編程提供工具。
我已經看過了ConcurrentLinkedQueue
文件,並說:
[...]與其他併發集合[...]
它也說:
[...]一個無界線程安全隊列基於鏈接節點。
因爲它說,一個CLQ是線程安全的,並比較其爲「其他併發收藏,」我認爲我們可以假設他們,其實,同義詞。
找到的唯一真正方法是檢查Java分發的源代碼。
我認爲在這種情況下,它意味着「一個線程安全的集合,非阻塞(不像其他較舊的集合,如使用同步的Stack),更適合併發訪問」。
Brian Roach似乎在我之前發佈了,但我會保留這裏,因爲我們的答案的推理是不同的。 – Jack