太阳城集团

  • / 10
  • 下载费用:30 金币  

线程的处理方法和装置.pdf

摘要
申请专利号:

太阳城集团CN201310662534.6

申请日:

2013.12.09

公开号:

CN103677750A

公开日:

2014.03.26

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/30申请日:20131209|||公开
IPC分类号: G06F9/30; G06F9/32 主分类号: G06F9/30
申请人: 龙芯中科技术有限公司
发明人: 蔡嵩松; 张戈; 刘奇
地址: 100190 北京市海淀区中关村科学院南路10号
优先权:
专利代理机构: 北京同立钧成知识产权代理有限公司 11205 代理人: 刘芳
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201310662534.6

授权太阳城集团号:

||||||

法律状态太阳城集团日:

太阳城集团2017.03.29|||2014.04.23|||2014.03.26

法律状态类型:

授权|||实质审查的生效|||公开

摘要

本发明提供一种线程的处理方法和装置,该方法包括:访问第一寄存器,获得所述第一寄存器中所缓存的当前线程对应的控制结构的首地址;根据所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构。通过该线程的处理方法和装置,可以直接访问第一寄存器以获取控制结构的首地址,不需要通过多个函数的调用和返回,提高了线程的控制结构首地址的获取效率,从而提升了计算机系统处理线程的效率。

权利要求书

权利要求书
1.  一种线程的处理方法,其特征在于,包括:
访问第一寄存器,获得所述第一寄存器中所缓存的当前线程对应的控制结构的首地址;
根据所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构。

2.  根据权利要求1所述的处理方法,其特征在于,在访问第一寄存器之前,将所述当前线程对应的控制结构的首地址缓存至所述第一寄存器。

3.  根据权利要求2所述的处理方法,其特征在于,所述根据所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构,包括:
将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器,所述第二寄存器为所述当前线程中当前执行的函数所对应的寄存器;
控制所述当前执行的函数按照所述第二寄存器中的所述控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取所述控制结构内已存储的全局太阳城集团。

4.  根据权利要求3所述的处理方法,其特征在于,所述将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器之前,所述处理方法还包括:
在至少一个可用寄存器中,向所述当前执行的函数分配第二寄存器;所述至少一个可用寄存器中不包括所述第一寄存器。

5.  根据权利要求1~4任一项所述的处理方法,其特征在于,所述第一寄存器为存储寄存器。

6.  一种线程的处理装置,其特征在于,包括:
获取模块,用于访问第一寄存器,获得所述第一寄存器中所缓存的当前线程对应的控制结构的首地址;
控制模块,与所述获取模块连接,用于根据所述获取模块获得的所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构。

7.  根据权利要求6所述的处理装置,其特征在于,所述处理装置还包括存储模块,与所述获取模块连接,用于在所述获取模块访问第一寄存器之前,将所述当前线程对应的控制结构的首地址缓存至所述第一寄存器。

8.  根据权利要求7所述的处理装置,其特征在于,所述控制模块具体用于将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器,所述第二寄存器为所述当前线程中当前执行的函数所对应的寄存器;
所述控制模块具体用于控制所述当前执行的函数按照所述第二寄存器中的所述控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取所述控制结构内已存储的全局太阳城集团。

9.  根据权利要求8所述的处理装置,其特征在于,所述处理装置还包括分配模块,与所述控制模块连接,用于在至少一个可用寄存器中,向所述当前执行的函数分配第二寄存器;所述至少一个可用寄存器中不包括所述第一寄存器。

10.  根据权利要求6~9任一项所述的处理装置,其特征在于,所述第一寄存器为存储寄存器。

说明书

说明书线程的处理方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种线程的处理方法和装置。
背景技术
计算机系统是通过运行各个线程,以完成各种功能。常见的,在以Java(由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称)虚拟机为例,每个Java线程都拥有一块独立的控制结构。该控制结构为位于Java虚拟机内存中的存储空间,保存了Java线程在运行过程中的一些全局太阳城集团,例如当前线程状态、异常太阳城集团、虚拟机运行结果、栈状态等。同一个线程内部的多个函数是可以共享该线程的控制结构,而线程中的各个函数是根据控制结构的首地址,使用该控制结构。
在现有技术中,获取Java线程控制结构首地址是通过调用线程标准库Pthreads中的函数pthread_getspecific实现的。具体实现方式为:在线程被创建时,选取计算机系统的内存的部分存储空间,作为该线程的控制结构分配至该线程,同时调用pthread_key_create函数向当前创建的线程分配键值,该键值作为该线程针对控制结构的线程索引,且调用pthread_setspecific函数将该线程索引与该线程的控制结构首地址进行绑定;当在线程运行的过程中需要使用控制结构时,可以通过上述线程索引调用pthread_getspecific函数获取该线程的控制结构的首地址。
在使用现有技术获取线程的控制结构首地址时发现,在上述方案中,每次获取线程的控制结构首地址都需要通过函数的调用和返回,导致获取速度较慢,影响线程的处理效率。
发明内容
本发明提供一种线程的处理方法和装置,用于优化获取线程的控制结构 的首地址的方法。
第一方面,本发明提供一种线程的处理方法,包括:
访问第一寄存器,获得所述第一寄存器中所缓存的当前线程对应的控制结构的首地址;
根据所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构。
结合第一方面,在第一实施方式中,在访问第一寄存器之前,将所述当前线程对应的控制结构的首地址缓存至所述第一寄存器。
结合第一方面的第一实施方式,在第二实施方式中,所述根据所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构,包括:
将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器,所述第二寄存器为所述当前线程中当前执行的函数所对应的寄存器;
控制所述当前执行的函数按照所述第二寄存器中的所述控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取所述控制结构内已存储的全局太阳城集团。
结合第一方面的第二实施方式,在第三实施方式中,所述将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器之前,所述处理方法还包括:
在至少一个可用寄存器中,向所述当前执行的函数分配第二寄存器;所述至少一个可用寄存器中不包括所述第一寄存器。
结合第一方面至第一方面第三实施方式中的任一种实施方式,在第四实施方式中,所述第一寄存器为存储寄存器。
第二方面,本发明提供一种线程的处理装置,包括:
获取模块,与所述获取模块连接,用于访问第一寄存器,获得所述第一寄存器中所缓存的当前线程对应的控制结构的首地址;
控制模块,用于根据所述获取模块获得的所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构。
结合第二方面,在第一实施方式中,所述处理装置还包括存储模块,与 所述获取模块连接,用于在所述获取模块访问第一寄存器之前,将所述当前线程对应的控制结构的首地址缓存至所述第一寄存器。
结合第二方面第一实施方式,在第二实施方式中,所述控制模块具体用于将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器,所述第二寄存器为所述当前线程中当前执行的函数所对应的寄存器;
所述控制模块具体用于控制所述当前执行的函数按照所述第二寄存器中的所述控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取所述控制结构内已存储的全局太阳城集团。
结合第二方面第二实施方式,在第三实施方式中,所述处理装置还包括分配模块,与所述控制模块连接,用于在至少一个可用寄存器中,向所述当前执行的函数分配第二寄存器;所述至少一个可用寄存器中不包括所述第一寄存器。
结合第二方面至第二方面第三实施方式,在第四实施方式中,所述第一寄存器为存储寄存器。
通过本发明提供的线程的处理方法和装置,线程的控制结构的首地址被缓存至第一寄存器中,则线程的处理装置可以直接访问第一寄存器以获取控制结构的首地址,不需要通过多个函数的调用和返回,提高了线程的控制结构首地址的获取效率,从而提升了计算机系统处理线程的效率。
附图说明
图1为本发明线程的处理方法实施例一的流程图;
图2为本发明线程的处理方法实施例二的流程图;
图3为本发明线程的处理装置实施例一的结构图;
图4为本发明线程的处理装置实施例二的结构图。
具体实施方式
图1为本发明线程的处理方法实施例一的流程图。如图1所示,实现本实施例的执行主体为线程的处理装置,该处理装置可以采用软件和/或硬件的方式实现,优选的,该处理装置可以集成于计算机设备中的处理器,具体的,该处理方法包括:
S101、访问第一寄存器,获得第一寄存器中所缓存的当前线程对应的控制结构的首地址。
在计算机系统中,存在多个寄存器,例如在采取精简指令集的处理器架构(Microprocessor without interlocked piped stages architecture,简称MIPS架构)中,含有多种寄存器,例如特殊寄存器(R0,SP,FP等)、临时寄存器(T0-T9)、以及存储寄存器(S0-S7)等。
本实施例中的第一寄存器可以根据需要选择上述任意一种寄存器,但优选的,本实施例的第一寄存器为存储寄存器,其原因在于,在一些特殊场景下,特殊寄存器具有特殊的用途,临时寄存器中的赋值会被编译器修改,而存储寄存器中的赋值不会被任意修改,因此为了保证控制结构首地址的安全性,本实施例中优选存储寄存器作为上述第一寄存器,缓存当前线程对应的控制结构首地址。
当计算机系统中的线程的处理装置运行当前线程时,该当前线程需要使用对应的控制结构时,线程的处理装置访问该第一寄存器,获取当前线程所对应的控制结构的首地址。
S102、根据当前线程对应的控制结构的首地址,控制当前线程使用该当前线程对应的控制结构。
线程的处理装置获取了控制结构的首地址,便可将当前线程运行过程中各个函数所确定的全局太阳城集团存储至该控制结构,与线程内其他函数共享;或者,线程中的函数需要调用某个全局太阳城集团时,便可根据当前线程对应的控制结构的首地址,在该控制结构中获取所需要的全局太阳城集团。
本实施例中,线程的控制结构的首地址被缓存至第一寄存器中,则线程的处理装置可以直接访问第一寄存器以获取控制结构的首地址,不需要通过多个函数的调用和返回,提高了线程的控制结构首地址的获取效率,从而提升了计算机系统处理线程的效率。
图2为本发明线程的处理方法实施例二的流程图。如图2所示,本实施例是在图1所示的实施例的基础上,进一步描述线程的处理方法,该处理方法包括:
S201、将当前线程对应的控制结构的首地址缓存至第一寄存器。
在计算机系统中,一个线程在被创建时,则在计算机系统的内存中针对 该线程分配一段存储空间,作为该线程的控制结构;但该线程被创建后,作为当前线程被运行时,并不立即使用控制结构,但会在该当前线程的运行过程中,例如需要存储作为全局太阳城集团的数据时才使用该控制结构,因此为了便于当前线程在运行过程中使用该控制结构,则将当前线程对应的控制结构的首地址缓存至第一寄存器。
S202、访问第一寄存器,获得第一寄存器中所缓存的当前线程对应的控制结构的首地址。
可以理解的,当前线程中包含多条指令,则线程的处理装置依次执行各个指令,以完成该当前线程的运行,因此当执行到当前线程中的某一条指令时,且该指令为需要使用控制结构的函数,则线程的处理装置访问第一寄存器,获得第一寄存器中所缓存的当前线程对应的控制结构的首地址。
S203、向当前执行的函数分配第二寄存器。
在MIPS架构下,当前线程中当前执行的函数在寻址访问存储空间时,是需要在对应的寄存器中获取所需要的地址,因此线程的处理装置在处理线程时,会采用分配算法实时的向当前线程中的当前执行的函数分配寄存器,例如通过线性扫描算法、整数线性规划算法等分配算法实时地向当前线程中的当前执行的函数分配寄存器,即上述第二寄存器为线程的处理装置通过分配算法分配于当前线程中当前执行的函数的寄存器。
需要补充说明的是,线程的处理装置在采用分配算法分配第二寄存器时,是在扫描到的至少一个可用寄存器中确定第二寄存器,而上述第一寄存器也为可用寄存器,为了防止第一寄存器被分配出去,造成第一寄存器中的存储的太阳城集团被修改,因此,线程的处理装置在实施本实施例时,即在可用寄存器中确定了第一寄存器后,便将该第一寄存器从计算机系统中的可用寄存器中去除,使得所述至少一个可用寄存器中不包括上述第一寄存器。具体可以通过更改寄存器的标识等方法,以使第一寄存器不再作为可用寄存器。
另外,线程的处理装置可以同时执行上述S202和S203,或先执行S203再执行S202。
S204、将第一寄存器中的当前线程对应的控制结构的首地址缓存至第二寄存器。
由于线程中的函数须在第二寄存器中获取所需要的地址,则线程的处理 装置将在第一寄存器中获取的控制结构的首地址缓存至第二寄存器。
S205、控制当前执行的函数按照所述第二寄存器中的控制结构的首地址,使用该控制结构。
具体的,由于当前执行的函数在第二寄存器中获取了当前线程所对应的的控制结构的首地址,控制当前执行的函数按照第二寄存器中的控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取控制结构内已存储的全局太阳城集团。
补充说明的是,本实施例应用在实际中,例如本实施例可以应用在JAVA虚拟机中,上述线程即为JAVA线程。
本实施例中,线程的控制结构的首地址被缓存至第一寄存器中,则线程的处理装置可以直接访问第一寄存器以获取控制结构的首地址,不需要通过多个函数的调用和返回,提高了线程的控制结构首地址的获取效率,从而提升了计算机系统处理线程的效率;另外,为了避免第一寄存器被其他指令占用,则线程的处理装置在至少一个可用寄存器中确定了第一寄存器后,便将该第一寄存器从所述至少一个可用寄存器中去除,以保证该第一寄存器中的太阳城集团的安全性。
图3为本发明线程的处理装置实施例一的结构图。如图3所示,该处理装置包括:
获取模块31,用于访问第一寄存器,获得所述第一寄存器中所缓存的当前线程对应的控制结构的首地址;
控制模块32,与上述获取模块31连接,用于根据所述获取模块获得的所述当前线程对应的控制结构的首地址,控制所述当前线程使用所述当前线程对应的控制结构。
本实施例中,线程的控制结构的首地址被缓存至第一寄存器中,则线程的处理装置可以直接访问第一寄存器以获取控制结构的首地址,不需要通过多个函数的调用和返回,提高了线程的控制结构首地址的获取效率,从而提升了计算机系统处理线程的效率。
图4为本发明线程的处理装置实施例二的结构图。如图4所示,本实施例是在图3所示的实施例的基础上做出进一步描述,具体的,该处理装置还包括存储模块33,与上述获取模块31连接,用于在获取模块31访问第一寄 存器之前,将所述当前线程对应的控制结构的首地址缓存至所述第一寄存器。
进一步的,上述控制模块32具体用于将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至第二寄存器,所述第二寄存器为所述当前线程中当前执行的函数所对应的寄存器;
进一步的,上述控制模块32具体用于控制所述当前执行的函数按照所述第二寄存器中的所述控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取所述控制结构内已存储的全局太阳城集团。
另外,所述处理装置还包括分配模块34,与上述控制模块32连接,用于在至少一个可用寄存器中,向所述当前执行的函数分配第二寄存器;所述至少一个可用寄存器中不包括所述第一寄存器,则上述控制模块32在控制所述当前线程使用所述当前线程对应的控制结构时,具体是将所述第一寄存器中的所述当前线程对应的控制结构的首地址缓存至所述分配模块34分配的第二寄存器,并控制所述当前执行的函数按照该第二寄存器中的所述控制结构的首地址,将新增全局太阳城集团存储至所述控制结构;或者,获取所述控制结构内已存储的全局太阳城集团;而且,优选的,前述第一寄存器为存储寄存器。
本实施例中,线程的控制结构的首地址被缓存至第一寄存器中,则线程的处理装置可以直接访问第一寄存器以获取控制结构的首地址,不需要通过多个函数的调用和返回,提高了线程的控制结构首地址的获取效率,从而提升了计算机系统处理线程的效率;另外,为了避免第一寄存器被其他指令占用,则线程的处理装置在至少一个可用寄存器中确定了第一寄存器后,便将该第一寄存器从所述至少一个可用寄存器中去除,以保证该第一寄存器中的太阳城集团的安全性。
需要补充说明的是,上述各个装置实施例中的各个模块对应执行上述各个方法实施例中的各个步骤,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
太阳城集团最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

关 键 词:
线程 处理 方法 装置
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:线程的处理方法和装置.pdf
链接地址:http://zh228.com/p-6180523.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');