[发明专利]一种进程模型向线程模型移植代码的方法及装置有效
| 申请号: | 201610170127.7 | 申请日: | 2016-03-23 |
| 公开(公告)号: | CN105786525B | 公开(公告)日: | 2019-01-25 |
| 发明(设计)人: | 陈勇初 | 申请(专利权)人: | 鼎点视讯科技有限公司 |
| 主分类号: | G06F8/76 | 分类号: | G06F8/76 |
| 代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 王术兰 |
| 地址: | 101300 北京市顺义*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 进程 模型 线程 移植 代码 方法 装置 | ||
本发明提供一种进程模型向线程模型移植代码的方法及装置。包括:在进程模型的程序代码中设置全局变量对应的宏定义信息;获取线程模型中线程对应的全局变量信息;为线程对应的全局变量信息分配内存地址,将全局变量信息存储在内存地址对应的内存空间;在线程模型的线程时域链表中,建立线程对应的时域记录。本发明通过设置全局变量的宏定义信息,存储线程对应的全局变量信息,建立线程对应的时域记录,来完成进程模型向线程模型的代码移植,后续通过对全局变量宏展开,根据线程对应的时域记录即可实现线程对全局变量的正确引用,避免对原程序代码中全局变量的大量修改,提高代码移植效率及程序代码的可维护性,降低移植出错率。
技术领域
本发明涉及终端技术领域,具体而言,涉及一种进程模型向线程模型移植代码的方法及装置。
背景技术
目前,存在分别采用进程模型和线程模型的操作系统,如Linux系统即采用进程模型,VxWorks系统则采用线程模型。若要在采用线程模型的系统中实现采用进程模型的系统功能,需将进程模型的程序代码移植到线程模型中。
在进程模型中各个进程可以各自独立访问一套全局变量。而线程模型中全局变量对所有线程可见,若各线程需独立访问全局变量,则线程对应的全局变量名称必须唯一。因此将进程模型的程序代码移植到线程模型中时,需对程序代码中的全局变量进行处理,以使全局变量的调用符合线程环境的特点。当前,一般由技术人员对进程模型的程序代码进行修改,复制调用全局变量的代码,使这部分代码的数量与线程数目相等。且将复制的每部分代码中全局变量的名称修改为专有名称,使得每份代码中全局变量的名称均不相同。
但当全局变量数目很多时,修改代码的工作量很大,人工修改效率很低,且出错率很高。且由于多次代码复制,增加了代码复杂度,降低了程序代码的可维护性。
发明内容
有鉴于此,本发明实施例的目的在于提供一种进程模型向线程模型移植代码的方法及装置,避免对原程序代码中全局变量的大量人工修改,提高代码移植效率及程序代码的可维护性,降低移植出错率。
第一方面,本发明实施例提供了一种进程模型向线程模型移植代码的方法,所述方法包括:
在进程模型的程序代码中,设置全局变量对应的宏定义信息;
获取线程模型中线程对应的全局变量信息,所述全局变量信息包括线程对应的全局变量的名称、长度和变量值;
为所述线程对应的全局变量信息分配内存地址,将所述全局变量信息存储在所述内存地址对应的内存空间中;
在所述线程模型的线程时域链表中,建立所述线程对应的时域记录。
结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述获取线程模型中线程对应的全局变量信息,包括:
在线程模型中线程启动的代码处设置全局变量注册接口;
通过所述全局变量注册接口获取所述线程对应的全局变量信息。
结合第一方面,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述在所述线程模型的线程时域链表中,建立所述线程对应的时域记录,包括:
获取所述线程的线程标识;
在所述线程模型的线程时域链表中,存储所述线程标识、所述线程对应的全局变量的名称与所述内存地址的对应关系。
结合第一方面,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述建立所述线程对应的时域记录之后,还包括:
在预编译阶段,根据所述宏定义信息对程序代码中的全局变量宏展开为地址获取函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于鼎点视讯科技有限公司,未经鼎点视讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610170127.7/2.html,转载请声明来源钻瓜专利网。





