複数のスレッドがアイテムを同時に変更/挿入できるようにする配列のようなデータ構造を実装したいと思います。パフォーマンスに関してどうすれば入手できますか?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();
}
};