[发明专利]多任务队列中任务的处理方法和装置有效
申请号: | 201611155748.4 | 申请日: | 2016-12-14 |
公开(公告)号: | CN108228240B | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 张鹏 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/48;G06F9/54 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 韩建伟;张永明 |
地址: | 100083 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 队列 处理 方法 装置 | ||
本发明公开了一种多任务队列中任务的处理方法和装置。其中,该方法包括:接收一个或多个任务的请求信息,其中,请求信息至少包括:任务的类型、任务的优先级;根据请求信息将述一个或多个任务放入相应的队列中;根据任务的类型和任务的优先级,对队列进行处理,将同一类型的任务放入不同的队列中。本发明解决了在同一个队列中同类型任务对相同资源的竞争造成任务执行效率不高的技术问题。
技术领域
本发明涉及队列算法领域,具体而言,涉及一种多任务队列中任务的处理方法和装置。
背景技术
目前队列算法主要分为两类,一类是先进先出(FIFO),即最先进入队列的任务最先被取出执行;还有一类是先进后出(FILO),即最先进入队列的任务最后被取出,队列总是优先执行最新进入的任务。上述两种方案在单线程模式下都不会出问题,由于每个任务之间不会出现资源的竞争,因而,每个任务可以能很好地被执行。然而,在多线程模式下,经常会出现队列中的相邻任务去竞争同一资源造成任务失败的情况。例如线程A取出队列中的任务1,任务1要读取文件test.txt,在任务1还没有执行完成时,线程2取出了任务2,任务2要向文件test.txt中写入数据,由于任务1还没有执行完成,此时文件test.txt处于锁定状态,这样任务2就会执行失败。
为了避免上述在多线程模式下,出现队列中相邻任务竞争同一资源造成任务执行失败的问题,现有技术采用的方案是对当前正在执行的任务进行加锁,使其处于锁定状态,这样后取出的任务就处于等待状态,直到处于锁定状态的任务执行结束,下一个任务才会加锁并执行。在这种队列算法下,锁定期内的任务会阻塞后面任务,不能充分发挥计算机的计算能力,造成系统的等待时间过长,效率不高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种多任务队列中任务的处理方法和装置,以至少解决在同一个队列中同类型任务对相同资源的竞争造成任务执行效率不高的技术问题。
根据本发明实施例的一个方面,提供了一种多任务队列中任务的处理方法,包括:接收一个或多个任务的请求信息,其中,请求信息至少包括:任务的类型、任务的优先级;根据请求信息将一个或多个任务放入相应的队列中;根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中。
进一步地,根据请求信息将一个或多个任务放入相应的队列中,包括:判断请求信息中是否包含了任务要进入的队列的名称;如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中;如果请求信息中没有包含任务要进入的队列的名称,则将任务放入默认队列中。
进一步地,如果请求信息中包含了任务要进入的队列的名称,则将任务放入与名称对应的队列中,包括:判断是否存在与名称对应的队列;如果存在与名称对应的队列,则将任务放入与名称对应的队列中;如果不存在与名称对应的队列,则创建新的队列,并将任务放入新的队列中。
进一步地,在创建新的队列,并将任务放入新的队列中之后,方法还包括:将新的队列命名为任务的请求信息中包含的队列的名称。
进一步地,根据队列中的任务的类型和优先级对队列进行处理,将同一类型的任务放入不同的队列中,包括:判断队列中是否存在类型相同的任务;如果队列中不存在类型相同的任务,则按照队列中的全部任务的优先级对队列中的任务进行排序;如果队列中存在类型相同的任务,则将类型相同的多个任务放入不同的多个队列中。
进一步地,将类型相同的多个任务放入不同的多个队列中,包括:判断除类型相同的多个任务所在的队列以外的其它队列中是否存在与类型相同的多个任务的类型相同的任务;如果不存在,则将类型相同的多个任务中的一个任务放入其它队列中的一个队列。
进一步地,如果剩余的其它队列中都存在与类型相同的多个任务的类型相同的任务,则创建至少一个新的队列,并将每个类型相同的任务放入不同的新的队列中,直至每个类型相同的任务均放入不同的队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611155748.4/2.html,转载请声明来源钻瓜专利网。