ここに私の質問があります。私は構築物の属性を変更するいくつかのスレッドを持っており、構造を読んだスレッドがあります。読んでいる値が他のスレッドによって変更されていないことを確認するにはどうすればよいですか?私の場合、属性は1つのスレッドでしか変更できません。C++でのマルチスレッドデータ同期
Exemple:
typedef struct
{
int a;
double b;
} data;
data glob;
int main()
{
thread reader([]()
{
while(1)
{
sleep(1s);
cout << glob;
}
});
thread writer1([]()
{
while(1)
glob.a++;
});
thread writer2([]()
{
while(1)
glob.b++;
});
int i;
cin >>i;
}
次に、どのように私は私がグロブを読んだとき、それはwriter1とwriter2によって変更されていないことを確認することができますか?
'std :: mutex'または' std :: atomic' – vu1p3n0x
共有状態へのアクセスを同期させる必要があります。たとえば、['std :: mutex'](http://en.cppreference.com/w/cpp/thread/mutex)などです。 –
あなたは[相互排除](http://en.cppreference.com/w/cpp/thread)について読んでみたいです。 –