【发布时间】:2014-09-21 12:51:48
【问题描述】:
我不太擅长数据结构,所以这可能是个非常愚蠢的问题。我正在寻找一种方法来实现队列+地图的混合行为。
我目前在多线程单生产者单消费者进程中使用来自www.threadingbuildingblocks.org 的tbb::concurrent_bounded_queue(记录在Intel's developer zone)。该队列具有市场数据报价对象,并且该过程的生产者端实际上对时间高度敏感,因此我需要一个以市场数据标识符(例如 USDCAD、EURUSD)为键的队列。价值点(通过unique_ptr)指向我为此密钥收到的最新市场数据报价。
所以,假设我的队列有 5 个元素用于 5 个唯一标识符,突然我们在队列中的第 3 位获得标识符的更新市场数据报价,然后我只存储最新值并丢弃我之前拥有的值.所以,基本上我只是将我的 unique_ptr 移动到这个键的新市场数据报价。
就像它与concurrent_bounded_queue<pair<string, unique_ptr<Quote>>> 相似,但键控于该对的第一个元素。
我不确定这是否已经在第三方库中可用(可能是 tbb 本身),或者如果它是标准数据结构,它被称为什么。
我非常感谢您对此提供任何帮助或指导。
谢谢。
【问题讨论】:
-
数据结构图有助于理解任务
标签: c++ multithreading data-structures concurrency tbb