2

我有一个应用程序可以不断地从外部系统接收股票价格。

价格将由 stockID 键入。

当价格到达时,它们将被送入阻塞队列。

会有一个线程池从这个队列中消费和处理,并将价格放入缓存中(股票 ID 和价格的哈希图)。

困扰我的是,如果队列有重复股票 id 的价格,当线程处理这些时,旧价格可能会在新价格之后写入缓存。

有没有办法绕过这种情况?

如何确保最后处理最新的?

4

1 回答 1

1

您可以使用自动递增的序列号标记每个传入的价格更新。写入缓存时,您可以删除序列号低于该股票缓存中已存在序列号的每个更新。

或者,您可以跨线程划分股票世界,这意味着给定股票的更新始终由同一线程处理。

于 2013-03-07T07:04:21.167 回答