【问题标题】:Can you give an example where the Queue data structure can be specially helpful [closed]你能举一个队列数据结构特别有用的例子吗?
【发布时间】:2010-11-05 07:53:11
【问题描述】:

你能举一个队列数据结构特别有用的例子吗

【问题讨论】:

  • 由于这是此类海报中连续第三个问题,我有一个偷偷摸摸的怀疑这是家庭作业。
  • 恕我直言,问题不在于这是否是家庭作业。问题是问题是一些转储。
  • @CAbbot- 鬼鬼祟祟,我不知道为什么......这绝对是功课,在这之后发布了几乎 6 个类似的问题
  • @All:这些不是我的家庭作业,这些只是我听了他们5天课的问题。
  • 有趣;两分钟前是来自伊朗的 Neda,现在是来自美国的 Johanna。也许他们共享一个帐户。

标签: java


【解决方案1】:

在某些情况下,项目可以(安全地)由多个线程推入和拉出队列结构。例如,假设您只需要 5 个同时连接到信用卡处理器。可以启动 5 个线程并检查(等待)项目是否出现在队列中。其他线程将处理信用卡的请求放入该队列结构中,将尽快处理。 (这太简单了。还有很多其他的考虑,比如等待响应、线程安全、并发、锁定、开发者的心情、月相......)

【讨论】:

    【解决方案2】:

    队列最常用于调度和请求处理应用程序。

    例如,如果您有一个进程创建请求而另一个进程处理请求,您将使用队列来保存请求。

    通常队列是 FIFO 顺序的 - 请求按接收顺序处理,但也可以按其他方式排序(例如优先级队列)。

    几个例子:

    1. 调度线程以在 CPU 上执行的操作系统将使用队列来确定下一个要执行的线程。

    2. 处理 HTTP 请求的 Web 服务器会使用队列将请求传递给线程,这些线程实际上会为网页提供服务。

    3. 处理打印作业请求的打印机。

    【讨论】:

      【解决方案3】:

      队列在breadth first search等算法中有很多用途。这非常有用。

      【讨论】:

        【解决方案4】:

        如果您需要按照收到请求的顺序处理请求,您可以使用队列。或者 FIFO 类型的结构……先进先出……保留请求顺序。为了更进一步,您可以使用类似于 MSMQ 的脱机队列,从而断开请求与实际请求接受者的连接。假设您有一个需要发送电子邮件的网站。对于队列来说,这是一个完美的地方,网站将请求存储在队列中以供离线处理器使用,这样网站就不会直接绑定到处理邮件所需的 SMTP 服务器。然后,这会释放网站上的工作线程来处理 Web 请求。

        【讨论】:

          猜你喜欢
          • 2015-07-31
          • 1970-01-01
          • 1970-01-01
          • 2010-12-12
          • 1970-01-01
          • 2019-11-17
          • 1970-01-01
          • 1970-01-01
          • 2020-08-19
          相关资源
          最近更新 更多