【发布时间】:2011-01-17 12:00:07
【问题描述】:
所以我有一个像这样的课程:
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,还有3 个线程在循环中调用Get。我需要让我的线程Get 一次和平数据不超过一次(这意味着它不能像我们Set 一样快地调用Get,这没关系,但它不能多次调用它 unteel new @ 987654327@ 被调用)。我的意思是在调用Get 的线程之后,它不能访问Get unteel Set 被执行。如何在如此简单的类中实现这样的事情,或者我的锁会默认为我做吗?
【问题讨论】:
标签: c++ multithreading boost locking getter-setter