[发明专利]一种多线程管理方法及架构有效
| 申请号: | 201110391566.8 | 申请日: | 2011-11-30 |
| 公开(公告)号: | CN103136047A | 公开(公告)日: | 2013-06-05 |
| 发明(设计)人: | 韩正超;王海涛;范大庆 | 申请(专利权)人: | 大唐联诚信息系统技术有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 逯长明 |
| 地址: | 100191*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多线程 管理 方法 架构 | ||
技术领域
本发明涉及技术领域,特别是涉及一种多线程管理方法及架构。
背景技术
线程,也被称为轻量级进程,是程序执行流的最小单元;一个标准的线程由线程ID,当前指令指针、寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分配的基本单元,线程自己不拥有系统资源,只拥有一点自己在运行过程中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行过程中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,那就是程序本身。线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。
在嵌入式系统中,线程间可以互相切换。比如,某此线程间切换过程如图1所示。在整个过程中,各线程的时间分配如图2所示。其中,时间轴上各时间点的说明为:
(1)0~T1为空闲;
(2)T1~T2为线程1处理需要的时间;
(3)T2~T3为线程1切换到线程2需要的时间;
(4)T3~T4为线程2处理需要的时间;
(5)T4~T5为线程2切换到线程3需要的时间;
(6)T5~T6为线程3处理所需的时间。
由图2可知,处理整个流程所需的时间总开销为(T6-T1)。其中,线程的处理时间开销为(T2-T1)+(T4-T3)+(T6-T5);线程间切换次数为2次,切换产生的调度时间开销为(T3-T2)+(T5-T4)。由于线程有自己的堆栈,线程间切换时,需要保存程序计数器、上下文指针、运行状态、寄存器组等信息,使得线程间切换的时间开销比较大。而随着线程数量的增加,线程间切换时调度算法的时间复杂度和空间复杂度会相应的增加,同时线程间切换的次数也会增加,这样使得总时间开销与线程数量会呈现出近似平方的关系。因此,当线程个数达到一定数量时,线程切换带来的时间开销是不可忽略的,甚至会严重影响系统的性能。
为了避免线程间切换带来的时间开销过大,现有的解决办法是减少线程数量,减少线程间单次调度的时间开销以及线程间切换的次数。但是,线程数量的减少意味着每个线程需要处理的功能增加,从而造成单个线程功能庞大,结构复杂,对于前期开发以及后期维护都带来极大不便;而且软件架构不易改变,不利于功能扩展和软件升级。
因此,如何降低多个线程的切换带来的时间开销,从而降低整个线程处理过程的总开销是一个值得关注的问题。
发明内容
为解决上述技术问题,本发明实施例提供了一种多线程管理方法及架构,以降低多线程的切换时间开销,技术方案如下:
一种多线程管理方法,适用于由操作系统控制多个线程的架构中,其中,多个线程包括调度线程和处理线程,所述调度线程控制多个纤程实现相应多个处理线程的功能,且所述多个纤程共享其对应调度线程的堆栈资源;所述方法包括:
当前被执行的调度线程获得当前被执行纤程所发送的调度消息,所述调度消息携带有目的标识;
判断所述目的标识是否为自身内部纤程的标识,如果是,则根据所述调度消息,从当前被执行纤程切换到具有目的标识的纤程,以实现线程内部纤程的切换;
否则,将所述调度消息发送至所述目的标识对应的线程,并且在当前被执行纤程执行完毕后,释放相应CPU资源,并保存自身的堆栈信息,以此实现线程间的切换。
其中,所述则根据所述调度消息,从当前被执行纤程切换到具有目的标识的纤程,具体为:
将所述调度消息保存在其对应的存储邮箱中;
在当前被执行纤程执行完毕后,解析所述存储邮箱中的调度消息,并根据解析结果,调度并执行所述目的标识对应的纤程。
其中,当所述目标标识对应的线程为处理线程时,所述目的标识对应的线程对所述调度消息的处理过程包括:
接收所述调度消息;
在所述当前被执行的调度线程的当前被执行纤程执行完毕,并释放相应CPU资源后,从操作系统获得相应CPU资源;
解析所述调度消息,并根据解析结果,由操作系统调度并执行。
其中,当所述目的标识对应的线程为调度线程时,所述目的标识对应的线程对所述调度消息的处理过程包括:
接收所述调度消息;
将所述调度消息放置到所述目的标识对应纤程的存储邮箱中,并将所述目的标识对应的纤程放置到自身的调度队列中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐联诚信息系统技术有限公司,未经大唐联诚信息系统技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110391566.8/2.html,转载请声明来源钻瓜专利网。





