gpt4 book ai didi

c++ - 如何在不损失性能的情况下用一个进程写入一个 vector 并用另一个进程读取它

转载 作者:行者123 更新时间:2023-11-28 03:34:44 25 4
gpt4 key购买 nike

我有一个 vector ,它通过我编写的用于收集信息的进程不断更新(大约每秒 5-20 次)新信息。我想编写一个能够检测 vector 变化的循环,然后读取信息并进行我为该事件编写的适当分析。但是,我知道像这样的多线程会引发很多问题,所以我很好奇执行此类操作的最佳方法是什么。

vector 存储在公共(public)类中,并通过我们从金融公司获得的提要进行更新(更新的信息是 future 指数)。

最佳答案

我没有在 C++ 中找到执行此操作的方法。如果您使用共享内存,您可以将 vector 存储在其中,但它的组件仍将指向本地非共享内存块,从而阻止它被共享(您可能 能够使用分配器技巧来解决问题,但我不确定它是否可行)。

boost 具有一些共享内存功能,但正如我从一个问题中回想起的那样,我找不到它有一些缺点。您很可能必须设计自己的共享内存数据结构,并提供一种机制来在其中存储条件变量,以便客户端可以等待它来确定新数据何时可用。

编辑:我发现了关于 boost::interprocess 的问题:

Is boost::interprocess ready for prime time?

关于c++ - 如何在不损失性能的情况下用一个进程写入一个 vector 并用另一个进程读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11311531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com