我正在使用 C++ 开发一个项目,该项目使用自行创建的地图来存储数据——从这个意义上说,地图更像是一张“地理”地图,所以是一张图像。有不同的线程读取和写入它。地图的数据存储在整数向量的标准向量中。它的大小不会改变,只是通过getter和setter函数改变某些像素的内容。
我的问题如下:有时一切正常,但更多时候我得到损坏的图像,因为像素的值改变符号或变得与它们应该的完全不同。这可能是对像素的线程读/写访问的问题,如果是这样,我应该使用什么来代替标准向量?我尝试使用互斥锁来确保只有一个线程读取或写入向量,但是这些读/写操作经常发生,如果我在每次操作时锁定向量,应用程序就会变得太慢。