我有一个带有静态std :: map变量的基类,如下所示:
class base
{
public : static std::map <int, int> my_statistics;
}
我有一个派生类,它读取,更新,写入这个静态变量。由于此派生类在运行时由不同进程实例化,因此我不确定它们是否是顺序的。我想知道每次读取(读取器锁定)或写入(写入器锁定)时是否需要对静态变量执行mutex_lock。
提前致谢。
编辑:不是实例化这个类的进程,而是实例化这个类的不同对象。所以,我想知道写入(或读取)静态变量的不同对象是否安全。
答案 0 :(得分:0)
不同的进程无法共享同一个对象实例,因此您的问题没有意义。 “静态”只在过程中有意义。如果您希望不同的进程访问相同的内存,则应使用共享内存。
您的编辑的新答案:
如果您的流程不是多线程的,那么您不需要保护。如果有多个线程读/写静态var,那么你需要保护它。