[发明专利]并行任务处理方法、协程框架、设备、介质和无人车在审
申请号: | 201811005573.8 | 申请日: | 2018-08-30 |
公开(公告)号: | CN109298922A | 公开(公告)日: | 2019-02-01 |
发明(设计)人: | 何玮;陈卓;王柏生;冯凯文;彭荣贵;张超 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 协程 用户层 线程 并行任务处理 线程执行 内核层 无人车 任务切换指令 上下文信息 读取目标 系统计算 创建 核层 内核 并发 保存 响应 维护 | ||
本发明实施例公开一种并行任务处理方法、协程框架、设备、介质和无人车,方法包括:响应于任务切换指令,将当前协程切换至目标协程,其中,协程为在用户层创建的用于处理任务的线程,用户层的协程由内核层的线程来执行;保存当前协程处理任务的上下文,并读取目标协程处理任务的上下文,以便与目标协程对应的内核层的线程执行目标协程的过程中,依据目标协程的上下文来处理任务。本发明实施例针对每个内核各自的线程,在用户层创建多个执行任务的协程,由线程执行协程,通过对多个协程的切换来处理并发任务,从而避免直接对内核层线程的切换,且用户层的协程切换的开销小,只需要维护必须的上下文信息即可,因此,整体上提高了系统计算的性能。
技术领域
本发明实施例涉及无人车技术领域,尤其涉及一种并行任务处理方法、协程框架、设备、介质和无人车。
背景技术
随着科技发展,生活中越来越多的工具都趋向于智能化,尤其是无人驾驶汽车的研究,将为以后人们的生活提供极大方便。
在无人车系统中存在着大量复杂、并行的计算任务,针对这些大量的并行计算任务,传统方式是采用多线程并行执行,即每个内核分别执行一个线程任务,当一个内核中的线程执行完,内核切换到另一个线程继续执行。然而在这种传统的多线程方案下,在内核层则存在线程切换开销过大、任务并行度不足等缺点,而由于车载硬件即车载计算机本身并行度和执行资源都非常有限,计算能力不充足,因此,也严重限制了车载计算的性能和可扩展性。
发明内容
本发明实施例提供一种并行任务处理方法、协程框架、设备、介质和无人车,以解决现有技术中采用传统的多线程方案时,在内核层则存在线程切换开销过大、任务并行度不足的技术问题。
第一方面,本发明实施例提供了一种并行任务处理方法,该方法包括:
响应于任务切换指令,将当前协程切换至目标协程,其中,协程为在用户层创建的用于处理任务的线程,用户层的协程由内核层的线程来执行;
保存当前协程处理任务的上下文,并读取目标协程处理任务的上下文,以便与目标协程对应的内核层的线程执行目标协程的过程中,依据目标协程的上下文来处理任务。
第二方面,本发明实施例还提供了一种协程框架,包括:
切换模块,用于响应任务切换指令在不同的协程之间进行切换,其中,协程为在用户层创建的用于处理任务的线程,用户层的协程由内核层的线程来执行;
上下文信息维护模块,用于在所述协程框架的内部数据结构中维护协程处理任务的上下文,具体包括:
保存单元,用于保存当前协程的上下文;
恢复单元,用于读取并恢复目标协程的上下文。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的并行任务处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的并行任务处理方法。
第五方面,本发明实施例还提供了一种无人车,包括车体,还包括本发明任一实施例所述的电子设备,其中,所述电子设备上配置有本发明任一实施例所述的协程框架。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811005573.8/2.html,转载请声明来源钻瓜专利网。