从不同线程写共享变量,我计划用QMutex做,如果我把互斥变量声明为extern变量,我可以用它来读写不同源文件中的两个函数吗?QMutex访问共享变量
像
header.hpp
extern QMutex mutex;
extern int data;
src1.cpp在//一个线程
int read(){
int tmp;
mutex.lock();
tmp=data;
mutex.unlock();
return tmp;
}
src2.cpp //在另一个线程
void write(int val){
mutex.lock();
data=val;
mutex.unlock();
}
基本上我需要的只是一个线程应该访问共享变量进行读取或写入,这种情况下我可以用这种方式使用互斥锁吗?
任何帮助将不胜感激.. 感谢 哈里斯
如果你真正的变量是'int'类型,你根本不需要'mutex',只需要使用'QAtomicInteger' – ixSci
嗨,我只是写这个来理解我的需求,我的共享变量将是一个结构。 – Haris