Tam*_*abó 4 c++ multithreading vector
我正在研究一个使用自己创建的地图来存储数据的C++项目 - 在这个意义上的地图更像是一个"地理"地图,所以是一个图像.有不同的线程读取和写入它.地图的数据存储在整数向量的std向量中.它的大小不会改变,只有某些像素的内容通过getter和setter函数.
我的问题如下:有时一切都运行得很好,但更常见的是我得到了损坏的图像,因为像素的值会改变符号或者与它们应该完全不同.这可能是对像素的线程读/写访问的问题,如果是这样,我应该使用什么而不是标准向量?我已经尝试使用互斥锁来确保只有一个线程读取或写入向量,但是这些读/写操作经常发生,如果我在每次操作时锁定向量,应用程序就会变得太慢.