所以我有一个像这样的课程:
class mySafeData
{
public:
void Set(int i) {
boost::mutex::scoped_lock lock(myMutex);
myData = i;
}
void Get( int& i)
{
boost::mutex::scoped_lock lock(myMutex);
i = myData;
}
private:
int myData;
boost::mutex myMutex;
};
我有一些循环调用Set
的线程和 3Get
个循环调用的线程。我需要让我的线程Get
不超过一次数据和平(这意味着它不能Get
像我们一样快速调用Set
它,这没关系,但它不会多次调用它 unteel newSet
被调用)。我的意思是在线程调用之后Get
它不会获得对Get
unteelSet
执行的访问权限。如何将这样的事情实现到如此简单的类中,或者我的锁会默认为我做吗?