一种单进程中多线程多互斥量间的控制方法以及终端技术

技术编号:33934111 阅读:60 留言:0更新日期:2022-06-25 22:53
本发明专利技术公开了一种单进程中多线程多互斥量间的控制方法以及终端,该方法包括:S1:获取线程的个数N,进行排序,记线程为T

【技术实现步骤摘要】
一种单进程中多线程多互斥量间的控制方法以及终端


[0001]本专利技术涉及信息处理
,尤其涉及一种单进程中多线程多互斥量间的控制方法以及终端。

技术介绍

[0002]现代操作系统采用多道程序设计机制,多个进程可以并发执行,每个进程下又包含有多个线程,CPU在线程之间来回切换,共享某些资源,提高了资源的利用率,但这也使得处理并发执行的多个线程之间的冲突和相互制约关系成为了一道难题。如果对并发线程的调度不当,则可能会出现运行结果与切换时间有关的情况,令结果不可再现,影响系统的效率和正确性,严重时还会使系统直接崩溃。需要一些机制来控制并发线程间的这种相互制约关系。
[0003]如中国专利CN105511969A一种跨进程的线程间进行互斥的方法,包括以下步骤:多个线程竞争互斥信息,胜出的线程初始化互斥信息;当胜出的线程获得互斥信息之后,利用互斥信息对临界区进行加锁操作;进行加锁操作后,线程获得互斥信息的锁,访问共享资源;同时,其它线程进行等待;线程使用完共享资源之后,离开临界区,进行解锁操作;互斥信息继续被其它线程竞争,重复上述步骤。但该本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种单进程中多线程多互斥量间的控制方法,其特征在于,包括以下步骤:S1:获取进程中的线程的个数N,并根据优先级对线程进行排序,记线程为T
n
,其中n为排序中的序号;S2:初始化N个互斥信号量,对互斥信号量进行排序,记互斥信号量为A
n
,对排序中的前(N

1)个A
n
进行资源加锁;S3:将N个线程T
n
逐一加入到线程池中,并向每个线程T
n
中传递参数i,启动所有线程T
n
,其中i=n;S4:判断i是否等于1,若是,则执行S5,若否,则执行S6;S5:对线程T1的内部引入未进行资源加锁的互斥信号量A
n
,执行完成线程T1的任务,并对互斥信号量A1进行资源解锁;S6:对线程T
n
的内部引入互斥信号量A
n
‑1,执行完成线程T
n
的任务,并对互斥信号量A
n
进行资源解锁。2.如权利要求1所述的单进程中多线程多互斥量间的控制方法,其特征在于,执行完成任意一个线程的任务后,还包括以下步骤:S7:获取预先设置的线程退出条件:ThreadExit=K,以及线程执行完成次数Q,其中Q的初始值为0;S8:对线程执行完成次数Q进行累计+1操作,获得线程执行当前次数B;S9:判断B是否等于K,若是,则结束程序,若否,则对互斥信号量A
n
进行资源解锁。3.如权利要求2所述的单进程中多线程多互斥量间的控制方法,其特征在于,所述S5具体由以下步骤实现:S51:初始化临时变量参数A
temp
,并对线程T1的内部引入未进行资源加锁的互斥信号量A
n
,赋值临时变量参数A
temp
=互斥信号量A

【专利技术属性】
技术研发人员:宋久才张常华朱正辉赵定金
申请(专利权)人:广州市保伦电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1