2

我想根据时间发送不同的 XML 消息字符串。我曾想过在 JAVA 中实现一个数据结构,并将所有的 XML 消息与它们应该发送的时间一起放入其中。我想使用排序的数据结构,以便每次消息进入数据结构时,它都会被排序,并且在发送时我可以检查它们各自的时间并将消息取出。我想知道哪种数据结构最有效以及如何实现它。另外,如何将每个 XML 字符串的时间以秒为单位。

它像是:

Message 1, time to send T + 1  ---- put to the data structure
Message 2, time to send T + 4  ---- put to the data structure
Message 3, time to send T + 3  ---- put to the data structure....

将有一个单独的线程每秒检查数据结构中的消息并删除所有符合条件的消息。

4

1 回答 1

1

如果我正确理解了您的问题。你要

  1. 存储按时间排序的消息
  2. 将检索消息。时间戳较早的消息将首先被检索
  3. 将被多个线程访问..

如果上述情况正确,那么我认为您将需要一个线程安全队列。因为

  1. 由于您需要根据时间排序,因此无需手动排序。因为时间较早的消息将首先插入
  2. 这是一个先进先出。

在这种情况下,ava.util.concurrent.ConcurrentLinkedQueue将是一个不错的选择

于 2013-06-28T21:01:11.440 回答