我想实现一个类似数组的数据结构,允许多个线程同时修改/插入项目。我如何才能获得它的性能?我围绕 std::vector 实现了一个包装类,并使用临界区来同步线程。请在下面查看我的代码。每次一个线程想要处理内部数据时,它可能不得不等待其他线程。因此,我认为它的表现并不好。:( 有什么想法吗?
class parallelArray{
private:
std::vector<int> data;
zLock dataLock; // my predefined class for synchronizing
public:
void insert(int val){
dataLock.lock();
data.push_back(val);
dataLock.unlock();
}
void modify(unsigned int index, int newVal){
dataLock.lock();
data[index]=newVal; // assuming that the index is valid
dataLock.unlock();
}
};