小编Mik*_*ike的帖子

如何使这段代码线程安全?ID ++; Print_Value(ID);

我是新手,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 ;
      }
};
Run Code Online (Sandbox Code Playgroud)

c++ multithreading atomic c++11

1
推荐指数
1
解决办法
148
查看次数

标签 统计

atomic ×1

c++ ×1

c++11 ×1

multithreading ×1