具有向量成员的单例应用程序

Singleton application with vector member

我有一个 Singleton 应用程序服务器(假设创建正确)。服务器 class 有一个非静态向量成员,它在几个方法中被修改。编译器是否有可能优化代码,以便在多个请求处理方法链中非连续地修改向量。我的意思是两个方法调用链可以跨不同的请求相交吗? 我认为他们可以,因为方法调用会跳转到标签。

好的,看到你的评论我发布了一个答案,因为有些事情需要明确:std 容器是 not "threadsafe".

它们提供一些 保护和保证,比如您可以安全地拥有多个读者。 但是,您不能有多个作者,或者同时有作者和读者。

关于你的问题:编译器是无罪的。 鉴于您的评论,我想您在 std::vector 上有并发的写入和读取,这是您现在遇到问题的地方。 只需添加一个互斥锁,然后检查性能是否太差。如果是寻找另一个 datastructure/architecture.