在项目中,我是单独对一组数据进行存储(量大的针点数据),方便程序随时调用,生命周期是程序开始到结束,我是用数组进行存储的QVector ,在多线程的情况下,会有生成图片数据的线程还有修改针点数据的线程,为确保数据使用时的一致性,需要线程同步。了解到的方法有
1、QMutex(互斥锁)或者QMutex联手QMutexLocker (遍历类)
2、QReadWriteLock(读写锁)或者QReadWriteLock联手QReadLocker和QWriteLocker
3、QSemaphore(信号量)
4、QWaitCondition(条件触发)
具体介绍可以看Qt线程同步的几种方法,里面总结的比较详细的。
https://blog.csdn.net/qq_40194498/article/details/82389503
在数据操作类里加锁,我是使用了读写锁来控制针点数据的存储。还在文件缓存用到。