[发明专利]一种跟踪任务的线程调度切换的方法、系统、设备和存储介质在审
| 申请号: | 202011009121.4 | 申请日: | 2020-09-23 |
| 公开(公告)号: | CN114253678A | 公开(公告)日: | 2022-03-29 |
| 发明(设计)人: | 周志刚 | 申请(专利权)人: | 武汉斗鱼鱼乐网络科技有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52;G06F16/22 |
| 代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
| 地址: | 430000 湖北省武汉市东湖新技术开发区软件园东路*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 跟踪 任务 线程 调度 切换 方法 系统 设备 存储 介质 | ||
1.一种跟踪任务的线程调度切换的方法,其特征在于,所述跟踪任务的线程调度切换的方法包括:
封装一个线程创建接口,利用所述线程创建接口创建线程;
利用map存储器和设置线程锁的方式针对所述创建接口创建的线程设置线程名称;
检测开发者是否利用所述线程创建接口进行线程建立;
设置具有线程数据记录功能的基础类,确定当前任务的线程是否需要进行切换操作;
设置异步任务的执行和线程投递,利用异步任务的执行自动完成线程的切换统计;
其中,所述利用map存储器和设置线程锁的方式针对所述创建接口创建的线程设置线程名称,包括:
使用map存储器来映射线程和线程名称的对应关系,形成存储的映射表;
设置一个线程锁;
获取所述线程对应的id;
利用lambad函数将所述线程名称以参数形式传入
利用所述线程锁中的写锁将mapThread变量写入线程;
存储所述线程的id对应的线程名称,然后执行所述线程的线程函数,所述线程则开始执行对应任务;
并且,设置线程名称的所有逻辑都在宏#ifdefThread_Count中编写。
2.根据权利要求1所述跟踪任务的线程调度切换的方法,其特征在于,所述的检测开发者是否利用所述线程创建接口进行线程建立,包括:
编写一个hook函数,利用所述hook函数的功能来hook系统的线程创建,并获取线程创建的调用堆栈;
判断所述调用堆栈是否有createThread函数的堆栈调用,如果没有,则说明开发者已创建的线程不是利用所述线程创建接口进行创建的;如果有,则说明开发者已创建的线程是利用所述线程创建接口进行创建的;
当确定开发者不是利用所述线程创建接口进行线程创建时,输出错误信息,提示开发者利用线程创建接口进行线程的创建。
3.根据权利要求1所述跟踪任务的线程调度切换的方法,其特征在于,所述的设置具有线程数据记录功能的基础类的过程包括:
设置成员变量,并利用所述成员变量记录当前线程的id;
设置链表,并利用所述链表按照任务所经历的线程的顺序对所述任务所经历过的线程id进行存储;
设置构造函数,在构造函数中对所述线程对应的id进行初始化,提供任务切换的调度接口,从而记录下任务的线程;
设置析构函数,利用析构函数表明任务马上会被消耗,表明任务已经执行完成;
将所述任务的执行过程中所有的线程和线程名称输出出来;
其中,所述的在构造函数中对所述线程对应的id进行初始化,提供任务切换的调度接口,从而记录下任务的线程,过程包括:
获取当前线程的id;
判断当前线程的id与之前执行的id是否相等,如果当前线程的id与之前执行的id不相等,则将当前线程的id存储下来,并赋值为新的id;如果当前线程的id与之前执行的id相等,则说明是相同的线程,不需要存储线程的id;
将所述新的id作为当前最新的线程current_id,并将线程current_id存储到链表中,以表示当前任务有线程切换操作。
4.根据权利要求3所述跟踪任务的线程调度切换的方法,其特征在于,所述设置析构函数,利用析构函数表明任务马上会被消耗,表明任务已经执行完成,包括:
获取当前线程的id;
判断当前线程的id与之前执行的id是否相等,如果当前线程的id与之前执行的id不相等,则将当前线程的id存储下来,并赋值为新的id;如果当前线程的id与之前执行的id相等,则说明是相同的线程,不需要存储线程的id;
将所述新的id作为当前最新的线程current_id,并将线程current_id存储到链表中,以表示当前任务有线程切换操作。
5.根据权利要求3所述跟踪任务的线程调度切换的方法,其特征在于,将所述任务的执行过程中所有的线程和线程名称输出出来,过程包括:
利用读锁同时对多个线程进行同时读取;
依据map存储器存储的映射表来读取对应的线程名称;
将所述线程名称写入日志文件或打印出来。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼鱼乐网络科技有限公司,未经武汉斗鱼鱼乐网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011009121.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种APF过采样方法、系统和存储介质
- 下一篇:大型拼接式种植水槽





