[发明专利]基于协程的任务执行方法、装置、存储介质及电子设备有效
申请号: | 202310519101.9 | 申请日: | 2023-05-09 |
公开(公告)号: | CN116225728B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 李二郎;王豪迈;张旭明;胥昕 | 申请(专利权)人: | 北京星辰天合科技股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/50;G06F9/48 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 黄海英 |
地址: | 100094 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 任务 执行 方法 装置 存储 介质 电子设备 | ||
1.一种基于协程的任务执行方法,其特征在于,通过线程中的多个协程协同完成目标任务,所述方法包括:
在所述线程中的任一协程执行子任务之前,根据所述子任务确定需要获取的目标自旋锁,其中,所述子任务是所述目标任务中的子任务,所述目标自旋锁用于对所述子任务的执行代码进行加锁;
读取内存中的预设信息,并执行所述目标自旋锁的获取操作,其中,所述预设信息记录有至少一个自旋锁的被占用状态;
在获取所述目标自旋锁失败的情况下,控制所述协程释放CPU资源,并在检测到所述协程下次被调度的情况下,再次申请获取所述目标自旋锁;
在获取所述目标自旋锁成功的情况下,基于所述CPU资源执行所述子任务,并在所述子任务执行完毕的情况下释放所述目标自旋锁。
2.根据权利要求1所述的方法,其特征在于,在所述内存中设置有一个自旋锁的情况下,读取内存中的预设信息,并执行所述目标自旋锁的获取操作包括:
读取所述目标自旋锁的被占用状态,并基于所述目标自旋锁的被占用状态获取所述目标自旋锁;
在所述目标自旋锁未被占用的情况下,确定获取所述目标自旋锁成功;
在所述目标自旋锁被占用的情况下,确定获取所述目标自旋锁失败。
3.根据权利要求1所述的方法,其特征在于,在所述内存中设置有至少两个自旋锁的情况下,读取内存中的预设信息,并执行所述目标自旋锁的获取操作包括:
判断所述内存中是否存在高级别的自旋锁,其中,所述高级别的自旋锁是指级别高于所述目标自旋锁的自旋锁;
在存在所述高级别的自旋锁的情况下,读取所述高级别的自旋锁的被占用状态以及所述目标自旋锁的被占用状态,并基于所述高级别的自旋锁的被占用状态以及所述目标自旋锁的被占用状态获取所述目标自旋锁;
若所述高级别的自旋锁和所述目标自旋锁均未被占用,确定获取所述目标自旋锁成功,若所述高级别的自旋锁和/或所述目标自旋锁被占用,确定获取所述目标自旋锁失败;
在不存在所述高级别的自旋锁的情况下,读取所述目标自旋锁的被占用状态,并基于所述目标自旋锁的被占用状态获取所述目标自旋锁;
在所述目标自旋锁未被占用的情况下,确定获取所述目标自旋锁成功,在所述目标自旋锁被占用的情况下,确定获取所述目标自旋锁失败。
4.根据权利要求1所述的方法,其特征在于,在获取所述目标自旋锁成功的情况下,基于所述CPU资源执行所述子任务包括:
在执行所述子任务的过程中,若当前协程需要等待其他协程的调度结果,则控制所述协程释放所述CPU资源,并持续占用所述目标自旋锁,在所述协程下次被调度的情况下继续执行所述子任务,直至所述子任务执行完毕。
5.根据权利要求4所述的方法,其特征在于,在获取所述目标自旋锁成功的情况下,基于所述CPU资源执行所述子任务包括:
在所述内存中设置有至少两个自旋锁的情况下,判断是否存在处于被占用状态的低级别的自旋锁,其中,所述低级别的自旋锁是指级别低于所述目标自旋锁的自旋锁;
在存在处于被占用状态的低级别的自旋锁的情况下,检测占用所述低级别的自旋锁的协程是否释放所述CPU资源;
在所述占用所述低级别的自旋锁的协程释放所述CPU资源的情况下,执行所述子任务。
6.根据权利要求1所述的方法,其特征在于,通过调用第一原子操作函数读取内存中的预设信息,以申请获取所述目标自旋锁;通过调用第二原子操作函数对所述预设信息中的值进行调整,以释放所述目标自旋锁。
7.根据权利要求3至6中任意一项所述的方法,其特征在于,在所述内存中设置有独占锁和共享锁的情况下,所述独占锁的级别高于所述共享锁的级别。
8.根据权利要求3至6中任意一项所述的方法,其特征在于,在所述内存中设置有写数据锁和读数据锁的情况下,所述写数据锁的级别高于所述读数据锁的级别。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京星辰天合科技股份有限公司,未经北京星辰天合科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310519101.9/1.html,转载请声明来源钻瓜专利网。