【发布时间】:2015-09-28 09:00:14
【问题描述】:
我在一个类中有一个公共变量
bool toSwitch = false;
Func_Thread1()
{
if(toSwitch)
{
.....
....
toSwitch = false;
}
}
和
Func_Thread2()
{
toSwitch = true;
}
Func_Thread1 将被频繁调用(2 秒一次),在一定的时间间隔内Func_Thread2 将被调用(1 分钟一次)并将全局变量更改为 true。所以在下一次Func_Thread1 调用中,if 条件将变为真。
toSwitch 是否需要同步,因为它可以由不同的线程同时读取和修改..?
更新 2:
在这种环境下会发生什么...?
Func_Thread1()
{
if(toSwitch)
{
.....
....
}
else
{
...
}
}
和
Func_Thread2()
{
if(toSwitch)
{
toSwitch = false;
}
else
{
toSwitch = true;
}
}
这里是否需要同步,一个线程修改,另一个线程读取该全局变量的值。?
【问题讨论】:
标签: c++ multithreading synchronization thread-safety