我的班级中有一些私有变量(比如int a、int b、int c)。由于一些内部操作,我需要以线程安全的方式设置/获取此类变量,因此我使用了一些包装 getter/setter 并使用了作用域互斥锁。
void setA(int a)
{
unique_lock<mutex> lock(opMutex);
this->a = a;
}
void getA(int a)
{
unique_lock<mutex> lock(opMutex);
return a;
}
void setB(int b)
{
unique_lock<mutex> lock(opMutex);
this->b = b;
}
void setC(int c)
{
unique_lock<mutex> lock(opMutex);
this->c = c;
}
我的问题是:是否可以避免 getter/setter 方法(公共变量)并保持对此类变量的分配/读取操作的线程安全?