0
我所擁有的是一個數組,我想在一個元素上放置一個鎖,以便其他元素不能改變它。使用鎖定數組的鎖定元素C++
一種方法來描述這更好的爲您展示:
Array A = new Array;
Thread1() {
while(array hasn't been completely changed) {
grab lock for random element within the array
alter the elements to this array
free the lock for the element
}
}
Thread2() {
while(array hasn't been completely changed) {
grab lock for random element within the array
alter the elements to this array
free the lock for the element
}
}
的目標是有兩個線程執行操作的元素,但它鎖定所以沒有其他線程可以訪問它。
雖然這隻使用一個單一的鎖,但我的目標是構建優良的顆粒鎖,所以我想爲每個數組索引鎖定一個鎖。 – QQCompi
@QQCompi,然後只是做一個互斥數組配對數組索引,只是爲了知道,你會訪問相同的數組索引形式不止一個線程? – Netwave
@QQCompi你可以爲數組中存儲的每個對象提供一個互斥體作爲類成員。 –