だから私は次のようなクラスを持っています:
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
1回だけデータの平和にする必要があります(つまりGet
、私たちほど速く呼び出すことはできずSet
、それは問題ありませんが、新しいものが呼び出されたときに2回以上呼び出すことはできませんSet
)。つまり、スレッドが呼び出された後、それはunteelにGet
アクセスできなくなります。そのようなものをそのような単純なクラスに実装する方法、または私のロックはデフォルトでそれを行いますか?Get
Set