[发明专利]一种多线程链表处理方法、装置及计算机可读存储介质有效
申请号: | 201910763250.3 | 申请日: | 2019-08-19 |
公开(公告)号: | CN110598054B | 公开(公告)日: | 2021-11-23 |
发明(设计)人: | 汤红燕;王峰;方皓;莫易;孙畅;唐毅龙;陈丽洁 | 申请(专利权)人: | 桂林长海发展有限责任公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F9/46;G06F9/52 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 陈振玉 |
地址: | 541001 广西*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 处理 方法 装置 计算机 可读 存储 介质 | ||
本发明提供一种多线程链表处理方法、装置及计算机可读存储介质,方法包括:创建主线程和多个子线程,将链表载入主线程中,状态信息包括已处理标识和未处理标识;子线程启动后从链表中获取一个未处理标识的目标节点,对目标节点的数据进行数据处理,如果处理成功,则在链表中将其状态信息更新为已处理标识,并重新从链表中获取下一节点;主线程在经更新后的链表中对各个节点进行遍历,遍历过程中将状态信息为已处理标识的节点删除。采取主线程和多个子线程共同处理数据的方式,在链表的数据中加入节点的状态信息,多个子线程并行处理链表中节点的数据,无需考虑对其它子线程的影响,数据处理效率得到提升,链表也不容易受到破坏。
技术领域
本发明主要涉及线程处理技术领域,具体涉及一种多线程链表处理方法、装置及计算机可读存储介质。
背景技术
目前行业中线程间的数据同步都是采用线程锁的方式,当某个线程需要操作链表时创建一个线程锁把链表锁住,待业务处理完毕后再把锁打开;在链表锁住期间其他链表将不能对链表进行操作,一直等待锁被打开才能进行业务处理;如果某个线程业务处理出现异常时经常出现被死锁的情况;程序运行时也有可能存在某个时间线程锁失效的情况,此时多个线程同时处理链表时,会出现链表迭代异常的情况。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种多线程链表处理方法、装置及计算机可读存储介质。
本发明解决上述技术问题的技术方案如下:一种多线程链表处理方法,包括如下步骤:
创建主线程和多个子线程,并设置多个所述子线程的启动信息,所述启动信息包括各个所述子线程启动顺序;
启动所述主线程,并根据所述启动信息对各个所述子线程进行启动,将链表载入所述主线程中,所述链表包括多个节点以及各个所述节点对应的状态信息和业务数据,所述状态信息包括已处理标识和未处理标识;
所述子线程启动后从所述链表中获取一个状态信息为未处理标识的目标节点,对所述目标节点的业务数据进行数据处理,如果处理成功,则在所述链表中将其状态信息更新为已处理标识,并重新从所述链表中获取下一节点;
所述主线程在经更新后的链表中对各个节点进行遍历,遍历过程中将状态信息为已处理标识的节点删除。
本发明解决上述技术问题的另一技术方案如下:一种多线程链表处理装置,包括:
线程创建模块,用于创建主线程和多个子线程,并设置多个所述子线程的启动信息,所述启动信息包括各个所述子线程启动顺序;
启动模块,用于启动所述主线程,并根据所述启动信息对各个所述子线程进行启动,将链表载入所述主线程中,所述链表包括多个节点以及各个所述节点对应的状态信息和业务数据,所述状态信息包括已处理标识和未处理标识;
所述子线程,用于启动后从所述链表中获取一个状态信息为未处理标识的目标节点,对所述目标节点的业务数据进行数据处理,如果处理成功,则在所述链表中将其状态信息更新为已处理标识,并重新从所述链表中获取下一节点;
所述主线程,用于在经更新后的链表中对各个节点进行遍历,遍历过程中将状态信息为已处理标识的节点删除。
本发明解决上述技术问题的另一技术方案如下:一种多线程链表处理装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,实现如上所述的多线程链表处理方法。
本发明解决上述技术问题的另一技术方案如下:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的多线程链表处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林长海发展有限责任公司,未经桂林长海发展有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910763250.3/2.html,转载请声明来源钻瓜专利网。