【问题标题】:Using collections to store objects to be processed in order使用集合存储要按顺序处理的对象
【发布时间】:2012-03-24 17:18:30
【问题描述】:

我目前遇到一个问题,我通过网络将对象从一个客户端发送到另一个客户端,并且似乎如果第二个对象在之后立即发送,它似乎会覆盖第一个对象,因此它不能处理。但是,如果客户端模拟器都与服务器在同一台电脑上运行,则不存在此问题。

为了解决我的问题,我正在考虑使用某种形式的集合(例如 Deque)在对象进入时存储它们,然后按顺序处理它们,一旦处理完就从集合中删除它们。

我只是想知道这是否是解决问题的好方法,或者是否有人知道可能导致此问题的原因。

谢谢

【问题讨论】:

  • 你能把两个对象都放在List 中然后发送整个列表吗?
  • 您需要按顺序处理它们吗? (如果您以某种特别的方式发送它们,它们可能不会按照发送的顺序到达。)
  • 不确定你在问什么。你能说清楚一点吗?
  • 好吧,我试着扩展一下,我基本上是从一个设备到另一个设备绘图,并实时发送点的坐标,发送的第一个点在处理时没有被处理android 设备正在另一台电脑上运行。我相信是因为它在被处理之前就被覆盖了。

标签: java android networking collections client-server


【解决方案1】:

您没有附加任何代码。我不知道您目前是如何处理您的消息的,所以我无法猜测是什么导致了这个问题。

无论如何,我可以给你一个建议。我认为当您要异步处理您的消息时,您需要一个队列来存储消息序列,这是一个经验法则,否则您不需要队列。当然,情况并非总是如此,这仍然取决于您的业务逻辑。

【讨论】:

    【解决方案2】:

    最后我使用了一个双端队列作为缓冲区,这样对象在被处理之前就不会被覆盖。

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 2023-03-08
      • 2011-02-19
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      相关资源
      最近更新 更多