C ++ - 从不同的对象写入静态变量需要一个互斥量?

时间:2013-08-02 06:44:48

标签: mutex crud static-variables

我有一个带有静态std :: map变量的基类,如下所示:

  class base
  {
     public : static std::map <int, int> my_statistics;
  }

我有一个派生类,它读取,更新,写入这个静态变量。由于此派生类在运行时由不同进程实例化,因此我不确定它们是否是顺序的。我想知道每次读取(读取器锁定)或写入(写入器锁定)时是否需要对静态变量执行mutex_lock。

提前致谢。

编辑:不是实例化这个类的进程,而是实例化这个类的不同对象。所以,我想知道写入(或读取)静态变量的不同对象是否安全。

1 个答案:

答案 0 :(得分:0)

不同的进程无法共享同一个对象实例,因此您的问题没有意义。 “静态”只在过程中有意义。如果您希望不同的进程访问相同的内存,则应使用共享内存。

您的编辑的新答案:

如果您的流程不是多线程的,那么您不需要保护。如果有多个线程读/写静态var,那么你需要保护它。