我是新手,C++
但我需要以多线程方式编写代码。在下面的代码中,如果Increase_value()
被多个线程调用,那么确保Print_Value()
打印最初增加的ID
值的最有效方法是什么。Increase_value()
换句话说,如何确保在运行期间,Print_Value()
打印一个数字序列而不会丢失任何值(数字的顺序不是问题)。C++11
可以在这里使用帮助中讨论的原子变量吗?
class foo
{
public:
static int ID;
void Increase_value()
{
ID++;
Print_Value (ID-1);
}
void Print_Value(int k)
{
cout << k ;
}
};