1、在工作中,很多高并发的场景中,我们会用到队列来实现大量的任务请求。当任务需要某些特殊资源的时候,我们还需要合理的分配资源,让队列中的任务高效且有序完成任务。熟悉分布式的话,应该了解的任务调度算法。本文主要用实现一个,先进先出调度器,这也是常见的一种调度方式。
2、主要实现的逻辑可以归纳为:。1、任务队列主要是单队列,所有任务按照顺序进入队列后,也会按照顺序执行。2、如果任务无法获得资源,则将任务塞回队列原位置。具体的原理就不细说了,通过代码我们看看任务调度策略是什么玩的吧。
3、下面的代码也可以作为参考。我们会使用到一个双向阻塞队列。
4、后面的代码说明会提到。**代码说明:**。1、首先我们构造了任务队列,使用的是,使用双向队列的原因是如果任务无法获取资源,还需要塞到队首,保证任务的有序性。
5、2、使用作为资源映射表,为了保证资源队列使用的均衡性,一旦使用完成的资源会塞到对应资源的队尾处。3、其中实现了添加任务、提取资源、回归资源几个方法。4、方法可以初始化资源队列,这里面只是简单的随机了几个资源到、三种资源,塞入各类别队列。
1、5、任务私有类有自己的任务标识以及执行完后调用回归资源方法。1、方法中会分别提交需要3中资源的10个任务,看看调度情况。
2、我们可以通过结果发现任务有序调度,使用完任务后回归队列。在工作中如果有用到的话,可以参考参考,本文主要是分享。
3、——我也不知道来自哪,偶然看到的一句话。如果本文对你有帮助的话,点个赞吧。本人主页地址:剑客阿良_的主页。一起学习。