私はC++で、自分で作成したマップを使用してデータを格納するプロジェクトに取り組んでいます。この意味でのマップは、「地理的な」マップに似ているため、画像になります。読み取りと書き込みにはさまざまなスレッドがあります。マップのデータは、整数のベクトルのstdベクトルに格納されます。そのサイズは変更されず、ゲッターおよびセッター機能を介して特定のピクセルのコンテンツのみが変更されます。
私の問題は次のとおりです。ピクセルの値が符号を変更したり、本来の値と完全に異なったりするという意味で、すべてが正常に機能することもありますが、画像が破損することがよくあります。これは、ピクセルへのスレッド化された読み取り/書き込みアクセスの問題である可能性がありますか?その場合、標準のベクトルの代わりに何を使用する必要がありますか?ミューテックスを使用して、1つのスレッドのみがベクターの読み取りまたは書き込みを行うようにしましたが、これらの読み取り/書き込み操作は頻繁に発生するため、すべての操作でベクターをロックするとアプリケーションが遅くなります。