2013-08-02 34 views
0

我有一个静态的std ::地图变了一个基类,类似如下:C++ - 写入来自不同对象的静态变量需要互斥锁?

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

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

在此先感谢。

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

回答

0

不同的进程不能共享同一个对象实例,所以你的问题没有意义。 “静态”只有在过程中才有意义。如果你想让不同的进程访问相同的内存,你应该使用共享内存。

新回答您的编辑:

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

+0

请参阅编辑..对不起..我的错误.. – 302Found

+0

如果你的过程不是多线程,那么你不需要保护。如果有几个线程读/写静态变量,那么你需要保护它。 – TieDad