[发明专利]一种单进程中多线程多互斥量间的控制方法以及终端有效
申请号: | 202210571806.0 | 申请日: | 2022-05-25 |
公开(公告)号: | CN114661481B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 宋久才;张常华;朱正辉;赵定金 | 申请(专利权)人: | 广州市保伦电子有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/52 |
代理公司: | 广州君咨知识产权代理有限公司 44437 | 代理人: | 谭启斌 |
地址: | 510000 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 多线程 多互斥量间 控制 方法 以及 终端 | ||
本发明公开了一种单进程中多线程多互斥量间的控制方法以及终端,该方法包括:S1:获取线程的个数N,进行排序,记线程为Tn;S2:初始化互斥信号量,对互斥信号量进行排序,记互斥信号量为Am,对前(m‑1)个Am进行加锁;S3:将线程Tn加入到线程池,向线程Tn中传递参数i,启动所有线程;S4:判断i是否等于1,若是,则对线程T1引入互斥信号量Am,执行线程T1的任务,并对互斥信号量A1解锁,若否,则对线程Tn引入互斥信号量Am‑1,执行线程Tn的任务,并对互斥信号量An解锁。在本发明中,通过互斥信号量驱使多线程按顺序有序进行,更能体现合理公平性的原则。
技术领域
本发明涉及信息处理技术领域,尤其涉及一种单进程中多线程多互斥量间的控制方法以及终端。
背景技术
现代操作系统采用多道程序设计机制,多个进程可以并发执行,每个进程下又包含有多个线程,CPU在线程之间来回切换,共享某些资源,提高了资源的利用率,但这也使得处理并发执行的多个线程之间的冲突和相互制约关系成为了一道难题。如果对并发线程的调度不当,则可能会出现运行结果与切换时间有关的情况,令结果不可再现,影响系统的效率和正确性,严重时还会使系统直接崩溃。需要一些机制来控制并发线程间的这种相互制约关系。
如中国专利CN105511969A一种跨进程的线程间进行互斥的方法,包括以下步骤:多个线程竞争互斥信息,胜出的线程初始化互斥信息;当胜出的线程获得互斥信息之后,利用互斥信息对临界区进行加锁操作;进行加锁操作后,线程获得互斥信息的锁,访问共享资源;同时,其它线程进行等待;线程使用完共享资源之后,离开临界区,进行解锁操作;互斥信息继续被其它线程竞争,重复上述步骤。但该专利仍处在以下问题:第一,多个线程之间的执行顺序没有任何规律,明显处于不可控的无序状态;第二,无法用于执行存在明显因果关系的多个线程,导致线程的处理会异常耗时,且效率极低,容易出现系统死机异常退出等问题。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种单进程中多线程多互斥量间的控制方法,其能解决多个线程之间的执行顺序没有任何规律,明显处于不可控的无序状态的问题。
本发明的目的之二在于提供一种单进程中多线程多互斥量间的控制终端,其能解决多个线程之间的执行顺序没有任何规律,明显处于不可控的无序状态的问题。
为了达到上述目的之一,本发明所采用的技术方案如下:
一种单进程中多线程多互斥量间的控制方法,包括以下步骤:
S1:获取进程中的线程的个数N,并根据优先级对线程进行排序,记线程为Tn,其中n为排序中的序号;
S2:初始化N个互斥信号量,对互斥信号量进行排序,记互斥信号量为An,对排序中的前(N-1)个An进行资源加锁;
S3:将N个线程Tn逐一加入到线程池中,并向每个线程Tn中传递参数i,启动所有线程Tn,其中i=n;
S4:判断i是否等于1,若是,则执行S5,若否,则执行S6;
S5:对线程T1的内部引入未进行资源加锁的互斥信号量An,执行完成线程T1的任务,并对互斥信号量A1进行资源解锁;
S6:对线程Tn的内部引入互斥信号量An-1,执行完成线程Tn的任务,并对互斥信号量An进行资源解锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市保伦电子有限公司,未经广州市保伦电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210571806.0/2.html,转载请声明来源钻瓜专利网。