您能举例说明Queue数据结构可以特别有用吗
答案 0 :(得分:6)
队列最常用于调度和请求处理应用程序。
例如,任何有一个进程创建请求的进程和另一个处理请求的进程,您将使用队列来保存请求。
通常,队列按FIFO顺序排列 - 请求按接收顺序处理,但也可以其他方式排序(例如优先级队列)。
一些例子:
在CPU上执行调度线程的操作系统将使用队列来确定下一个要执行的线程。
处理HTTP请求的Web服务器将使用队列将请求传递给实际将为网页提供服务的线程。
处理打印作业请求的打印机。
答案 1 :(得分:0)
如果您需要按接收顺序处理请求,则使用队列。或FIFO类型结构......先进先出...保留请求顺序。为了更进一步,您可以使用类似于MSMQ的脱机队列,因此请求与实际请求接受者断开连接。假设您有一个需要发送电子邮件的网站。对于队列来说,这是一个完美的位置,在该队列中,网站将请求存储在脱机处理器的队列中,以使该网站不直接绑定到处理邮件所需的SMTP服务器。然后,这将释放网站上的工作线程以处理Web请求。
答案 2 :(得分:0)
队列在breadth first search等算法中有很多用途。这非常有用。
答案 3 :(得分:0)
在某些情况下,可以通过多个线程(安全地)将项目推入和拉出队列结构。例如,假设您只想同时连接5个信用卡处理器。可以启动5个线程并检查(等待)项目在队列中的显示。处理信用卡的请求被放入该队列结构中,其他线程将尽快处理。 (这太简单了。还有很多其他考虑因素,比如等待响应,线程安全,并发,锁定,开发人员的心情,月相......)