基于多平台的通用线程库设计毕业设计

上传人:aa****6 文档编号:29217953 上传时间:2018-01-22 格式:DOC 页数:28 大小:250KB
返回 下载 相关 举报
基于多平台的通用线程库设计毕业设计_第1页
第1页 / 共28页
基于多平台的通用线程库设计毕业设计_第2页
第2页 / 共28页
基于多平台的通用线程库设计毕业设计_第3页
第3页 / 共28页
基于多平台的通用线程库设计毕业设计_第4页
第4页 / 共28页
基于多平台的通用线程库设计毕业设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《基于多平台的通用线程库设计毕业设计》由会员分享,可在线阅读,更多相关《基于多平台的通用线程库设计毕业设计(28页珍藏版)》请在金锄头文库上搜索。

1、1摘要跨平台是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统。文中提到的当下比较流行的开源库如 Boost,Qt, ZThreads,Ptypes,这些开发库各有各的侧重点,在性能和框架设计上各有不同,本文会依次简要分析这些开发库的设计原则,概括总结跨平台有两种实现方式,利用分支技术,或者利用动态平台识别,例如 Java 是一种提供运行环境的跨平台解决方案,而C 只是一种标准且严格的跨平言,本文

2、就是主要探讨 C 的跨平台库实现。本文会简要分析几种跨平台的技术实现和区别,并通过对实现方法的总结,而借用一种叫做核心和路由的技术来实现跨平台库的构架,并给出相应实现,最后配上相应的演示功能程序。关键词:跨平台、开源库、Boost、线程库2AbstractCross-platform software development is an important concept, that is not dependent on the operating system, do not trust the hardware environment. An operating system devel

3、oped under the application can still run into another operating system. In contrast If a computer language without modifying the code to achieve a high degree of cross-platform, then the more abstract language, lower hardware control, only suitable for the development of highly abstract model system

4、.Current popular open source libraries such as Boost, of Qt, ZThreads, Ptypes, each of these development libraries each focus on performance and frame design different, this article will be followed by a brief analysis of the design principles of these development libraries, text summary cross-platf

5、orm implemented in two ways, a branch of technology, or the use of a dynamic platform to identify, for example, Java is a cross-platform operating environment solutions, and C is a standard and rigorous cross-platform language, this paper focuses on C cross-platform library.This article is a brief a

6、nalysis of several cross-platform technology and distinction, and summary of the implementation, and to borrow a technique called core and routing technology to achieve cross-platform library architecture, and gives the corresponding implementation, and finally coupled with the corresponding demo pr

7、ogram.Key words: cross-platform, open source library, Boost thread library3目录摘要 .1Abstract.2第一章 引言 .41.1 研究背景 .41.2 主要研究内容 .51.3 论文结构 .5第 2 章 跨平台软件开发环境 .62.1 跨平台开发的历史 .62.2 预处理器使用 .62.2.1 例子 1: Boost 线程库 .72.2.2 例子 2: ZThreads 线程库 .82.2.3 预处理技术的比较 .92.2 独立的开发分支 .102.3 设计模式 .112.3.1 桥接模式 .122.3.2 抽象工

8、厂模式 .13第 3 章 跨平台库的设计 .153.1 介绍 .153.2 核 心 和 路 由 概 述 .153.3 应用范例 .17第 4 章 跨平台线程库的设计和实现 .204.1 线程跨平台的基础 .204.2 总体框架设计 .214.3 线程库结构化实现 .23第 5 章 总结与展望 .285.1 总结 .285.1 展望 .28致 谢 .29参考文献 .304第一章 引言1.1 研究背景1991 年 Linux 出现。短短 10 多年,Linux 已经迅速发展成为一个至关重要的操作系统。目前 Linux 技术 1已成为国内外信息产业界研究开发的热点。基于 Linux 的软件产品已经基

9、本覆盖了计算机软件的各种门类。但与 Windows 相比。用户可供选择的优秀系统软件数量还不太多。如何利用已有的 Windows 下的软件资源,迅速的开发出 Linux 下优秀的应用软件,缩短软件开发周期,已经成为一个热点。将 Windows 软件向 Linux 软件移植将是一个很好的选择,因此如果可以拥有更多的跨平台的库去丰富代码,那么移植也会变得非常轻松。大部分电脑语言从绝对意义而言,都是跨平台的:因为都是以高级的、人类可读的方式来对 CPU 发号指令,这样也就没必要依赖于任何作业系统。但如果要用系统的部件工具箱,来新建用户图形界面(GUI),就可能会用到开发员特定系统中的 API 函数或

10、库类。虽然 C+是跨平台的,但 Windows 下用到 Win32 API 的 C+程序,一般就不能在 Unix 机器上编译。不同编译器对语言规范的解释也有所差异。这样的话,在针对不同系统进行构建之前,程序就得加以考虑。一些如 Java 这样的语言,从一开始就意识到要在各个平台下运行,所以跨平台在其平台的本地语言环境中已经实现。例如,Java 可以跨平台使用,正是由于 Swing 库在许多平台下的实现。类似的,能进行跨平台的文件存取,是因为有各自平台下文件存取的库。以此类推,各种跨平台问题,都需要各自的本地库来解决。wxWidgets 框架就是这样的一个跨平台库,根据不同的跨平台问题,提供了许

11、多不同的解决方案;类似的库有许多,可以根据不同语言的跨平台开发,而采用相应的库。那些解释型语言,或者需要虚拟机的语言,也更加符合跨平台的要求,因为用户也要自己进行编译。Sun 公司的 Java 虚拟机 Hotspot,只针对几种而不是全部平台,提供编译好的二进位文件。例如,Sun 对于 GNU/Linux,只支持i386 平台,但如果谁在 PowerPC 或者 SPARC 电脑上运行 Linux,就只好自己编译本地的机器码(machinecode),或者使用第三方软件,才能运行 Java 程序。5许多 API(应用程序介面)依赖于平台。OpenGL 可以看作是跨平台的,因为其不依赖于任何特定的

12、作业系统、CPU 构架或者某个牌子的图形设备。特定平台的 API 可以在其他系统上作为兼容层而新建,例如 WINE 的库,Windows 程序就可以在 UNIX 系统上运行。另外许多程序语言还有跨平台的扩展以及中间件,这样程序设计师对于同样的原始码,只要进行一点小修改,就可以在不同平台下编译/运行,例如 Qt和 wxWidgets。1.2 主要研究内容通过学习和研究多种开源库的跨平台技术,并通过对实现方法的总结,而通过运用被称作核心和路由的技术,来实现一种跨平台的线程库,并给出相应实现,最后配上相应的演示功能程序。1.3 论文结构本文划分为六章,文章的安排结构如下:第一章简单介绍了跨平台开发库的历史背景,并

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号