0

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

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

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

提前致谢。

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

4

1 回答 1

0

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

编辑的新答案:

如果你的进程不是多线程的,那么你就不需要保护了。如果有多个线程读取/写入静态变量,那么您需要保护它。

于 2013-08-02T06:46:51.870 回答