[发明专利]一种多线程多任务管理方法及终端有效
| 申请号: | 202010273037.7 | 申请日: | 2020-04-09 |
| 公开(公告)号: | CN111475300B | 公开(公告)日: | 2023-06-23 |
| 发明(设计)人: | 张加法 | 申请(专利权)人: | 江苏盛海智能科技有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/52 |
| 代理公司: | 福州市博深专利事务所(普通合伙) 35214 | 代理人: | 段惠存 |
| 地址: | 215600 江苏省*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多线程 任务 管理 方法 终端 | ||
1.一种多线程多任务管理方法,其特征在于,包括步骤:
S1、根据任务个数创建对应个数的任务线程,初始状态为阻塞,并为每个任务线程创建对应的任务队列;
S2、为每个任务队列建立对应的任务队列指针以存放所述任务队列;
S3、接收任务处理请求,根据所述任务处理请求中的任务标识确定对应的任务队列指针以获取对应的任务队列,根据所获取的对应的任务队列的状态对所述任务处理请求进行响应;
所述S1中为每个任务线程创建对应的任务队列具体为:
S11、给每个任务线程分配对应的任务ID,所述任务ID为大于0的整数且不同的任务线程对应的任务ID互不相同;
S12、获取要创建任务队列的任务线程对应的任务ID,判断所述任务ID是否处于预设范围内,若是,则执行步骤S13,若否,则结束此次过程;
S13、根据所述任务ID,创建对应的任务队列,并为所述任务队列分配队列空间,初始化线程锁及读写队列的条件;
所述步骤S3包括:
S311、接收任务写入请求,根据所述任务写入请求中获取对应的任务ID;
S312、判断所述任务ID是否在预设范围内,若是,执行S313,否则发送写入失败提示;
S313、根据所述任务ID,确定其对应的任务队列指针;
S314、通过所述任务队列指针,确定任务队列并对其线程锁上锁,判断所述任务队列中是否还有剩余空间,若是,则执行S316,否则,执行S315;
S315、解除所述任务队列的线程锁,并进入等待状态,当接收到任务可写入信号时执行所述S316;
S316、写入所述任务写入请求中的任务,发送任务可读取信号并解除所述任务队列的线程锁;
还包括:为每个任务设置优先级属性;任务在任务队列中默认按照任务生成时间从前到后存储,在任务指针数组中,按照任务优先等级存储相应任务队列,优先等级高的任务存储在前,若接收的任务处理请求最高优先级属性的任务,则清空其他所有任务队列。
2.根据权利要求1所述的一种多线程多任务管理方法,其特征在于,所述步骤S2还包括:
创建任务指针数组,将每个任务队列对应的任务队列指针存入所述任务指针数组。
3.根据权利要求1所述的一种多线程多任务管理方法,其特征在于,所述步骤S3包括:
S321、接收任务读取请求,根据所述任务写入请求中获取对应的任务ID;
S322、判断所述任务ID是否在预设范围内,若是,则执行步骤S323,否则,发送读取失败提示;
S323、根据所述任务ID,确定对应的任务队列指针;
S324、通过所述任务队列指针,确定对应的任务队列并对其线程锁上锁,判断所述任务队列中是否有写入的任务,若是,则执行步骤S326,否则,执行步骤S325;
S325、解除所述任务队列的线程锁,并进入等待状态,当接收到任务可读取信号时执行所述步骤S326;
S326、读取所述任务读取请求中的任务,并释放所读取的任务的空间,发送任务可写入信号并解除所述任务队列的线程锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏盛海智能科技有限公司,未经江苏盛海智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010273037.7/1.html,转载请声明来源钻瓜专利网。





