Qt多线程run函数内访问类的成员变量在Linux系统中被优化的问题

如题,Qt多线程run函数内访问类的成员变量,通过类似getValue(){return variable;}这样的函数来获取变量的值,但是获取到的值不正确,在函数内添加qDebug以试图打印出当前的变量值,发现此时获取到的变量值是正确的,但是去掉qDebug语句则值不正确,且此现象只有在Linux系统中运行时出现,在Windows下运行一切正常,因此考虑是由于Linux系统把此变量值优化掉了;

解决方法:在变量定义时前面加上volatile以使变量的值实时刷新。

posted @ 2020-10-28 10:35  许卡文迪  阅读(317)  评论(0编辑  收藏  举报