1
如何自動設置一個字節的位?我試圖解決的問題涉及更新大量字節,例如uchar數據[262144]。我使用SET(索引,值)一次只設置一個字節的2位,這意味着四個線程可以同時在一個字節中設置值。線程選擇相同的字節進行更新是非常罕見的,但它確實發生了。什麼是使這些操作線程安全的最有效方式?請注意,我無法對每個數據條目使用一個太大而且太慢的鎖。字節數組中的原子集位
更糟糕的是,有時需要以線程安全的方式同時更新另一個字節數組data1 [131072]。但我打算合併這兩個數組來簡化問題,所以更新第一個數組的原子方式就足夠了。
比方說,維護一個單獨的每線程數據副本,然後在最後合併是否可行? –
不幸的是沒有。大多數時候線程訪問分區中的數據,但他們也訪問和更新其他分區。 – danny
如果「其他分區」更新只是偶爾的,請求所有者線程進行更新如何?這可能具有較低的攤銷成本。 –