队列在线程池等有限资源池中的应用-笔记

当我们向固定大小的线程池中请求一个线程时,若线程中没有空闲资源了,这时候线程池是拒绝请求还是排队请求还是?各种处理策略如何实现?

一般我们有两种处理策略:
1.非阻塞方式:直接拒绝请求;
2.阻塞方式:将请求排队,当有空闲线程时,取出排队的线程继续处理。

我们需要对排队的请求公平处理,先来者先服务,因此队列这种数据结构很适合处理这种排队结构。
队列又分为链式队列数组队列,链表队列可支持一个无限排队的无界队列。但可能导致过多的请求排队,导致请求响应时间过长,对于那些对响应时间敏感的系统来说不适用。数组队列实现的有界队列在请求超过限制时会拒绝请求,但队列长度过长会导致响应时间太长,太短又导致资源利用不充分,因此需要设计合理长度的队列。

除了前面讲到队列应用在线程池请求排队的场景之外,队列可以应用在任何有限资源池中,用于排队请求,比如数据库连接池等。实际上,对于大部分资源有限的场景,当没有空闲资源时,基本上都可以通过“队列”这种数据结构来实现请求排队。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值