比如我有一個10個元素的int型數(shù)組,線程A修改下標為0的元素,線程B修改下標為5的元素。這樣會不會引起線程安全的問題呢?我個人認為不會出現(xiàn)問題,但是是危險操作。
2 回答

SMILET
TA貢獻1796條經(jīng)驗 獲得超4個贊
線程安全對應是的數(shù)據(jù)爭用,按照官方說法是,沒有經(jīng)過happens-Before關系排序的數(shù)據(jù)爭用就會出現(xiàn) 不同步現(xiàn)象。
鑒于你操作的是一個數(shù)組的不同部分,多個線程沒有同時對同一個數(shù)組元素進行讀寫操作(也就是一個線程讀,另一個線程同時寫),哪怕沒有經(jīng)過正確的同步,也不會出現(xiàn)數(shù)據(jù)爭用(data race),所以是線程安全的。

拉莫斯之舞
TA貢獻1820條經(jīng)驗 獲得超10個贊
當然沒問題啊,不過你要在線程訪問每一個元素的時候加上同步,防止多個線程操作同一個元素,ConcurrentHashMap就是這么干的啊。
添加回答
舉報
0/150
提交
取消