数据结构--队列

真的是开卷有益。翻开大学教材——数据结构,温故而知新。

银行有四个窗口营业,从早上到晚上不断有顾客。如果窗口空闲,顾客一到就能办理,不然就选择最短的排队,计算一天中顾客在银行逗留的平均时间。

 

如上图所示,使用数组来维护队列头尾信息,使用双向链表维护请求信息。


联想应用:
1) 一个请求的统一接入端,使用消息队列来来分发请求到多个处理端。 即接入端维护一个消息队列池。遍历队列池,选择最短队列分发请求,达到负载均衡的目的。
2) 在1)的基础之上, 在遍历的过程当中,计算处理端响应时间平远值,即可以实现最快响应时间选择。 队列最短与响应最快两者的综合,可以通过等待时间=等待的人数*平均处理时间,
      选择等待最短时间,会是比较理想高效的算法。
3) 在实际的运用中,请求消息又是分很多种,使用相同的队列,不同的请求响应时间不一样。例如,登录请求等交互请求与业务处理类请求,用户体验的要求不一样。只使用队列最短就不足。
       在 2)的方法得要增加优先级以及种类的设计因素。 
4) 对于超时的请求,从冗余的处理角度考虑,是直接返回失败?还是转发到其它服务端处理? 服务端在设计上是否可以重复处理请求,类似这种断点续传的设计也是服务端的处理逻辑需要考虑的。
      如果是为了简单,返回超时响应,由用户来决定是否再次尝试也是一种办法。


另一种使用队列的应用:
TCP/IP的Socket连接队列, 服务端会维护2张队列表,一个记录正在建立但未完成的队列,另一个维护已建立的连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值