关于labwindows的多线程技术

关于labwindows的多线程技术

ID:35520552

大小:51.74 KB

页数:23页

时间:2019-03-25

关于labwindows的多线程技术_第1页
关于labwindows的多线程技术_第2页
关于labwindows的多线程技术_第3页
关于labwindows的多线程技术_第4页
关于labwindows的多线程技术_第5页
资源描述:

《关于labwindows的多线程技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多任务、多线程和多处理这些术语经常被交替地使用,但是它们在本质上是不同的概念。使用多线程技术,应用程序可以把它的任务分配到单独的线程中执行。在多线程程序中,操作系统让一个线程的代码执行一段时间(被称为时间片)后,会切换到另外的线程继续运行。暂停某个线程的运行而开始执行另一个线程的行为被称为线程切换。通常情况下,操作系统进行线程切换的速度非常快,令用户觉得有多个线程在同时运行一样。目录1.进行多线程编程的原因2.选择合适的操作系统3.LabWindows/CVI中的多线程技术简介4.在LabWindows/CVI的辅助线程中运行代码5.保护数据6. 避免

2、死锁7. 监视和控制辅助线程8. 进程和线程优先级9. 消息处理10. 使用线程局部变量11. 在线程局部变量中存储动态分配的数据12. 在独立线程中运行的回调函数13. 为线程设定首选的处理器14. 额外的多线程技术资源进行多线程编程的原因在程序中使用多线程技术的原因主要有四个。最常见的原因是多个任务进行分割,这些任务中的一个或多个是对时间要求严格的而且易被其他任务的运行所干涉。例如,进行数据采集并显示用户界面的程序就很适合使用多线程技术实现。在这种类型的程序中,数据采集是时间要求严格的任务,它很可能被用户界面的任务打断。在程序中使用多线程技术的第二

3、个原因是程序中可能需要同时进行低速的输入/输出操作。例如,使用仪器来测试电路板的程序将从多线程技术中获得显著的性能提升。在LabWindows/CVI程序中使用单线程技术时,程序员需要从串口发送数据,初始化电路板。,程序需要等待电路板完成操作之后,再去初始化测试仪器。必须要等待测试仪器完成初始化之后,再进行测量,。在LabWindows/CVI程序中使用多线程技术时,你可以使用另一个线程来初始化测试仪器。这样,在等待电路板初始化的同时等待仪器初始化。低速的输入/输出操作同时进行,减少了等待所需要的时间总开销。在程序中使用多线程技术的第三个原因是借助多处

4、理器计算机来提高性能。计算机上的每个处理器可以都执行一个线程。这样,在单处理器计算机上,操作系统只是使多个线程看起来是同时执行的,而在多处理器计算机上,操作系统才是真正意义上同时执行多个线程的。例如,进行数据采集、将数据写入磁盘、分析数据并且在用户界面上显示分析数据,这样的程序很可能通过多线程技术和多处理器计算机运行得到性能提升。将数据写到磁盘上和分析用于显示的数据是可以同时执行的任务。在程序中使用多线程技术的第四个原因是在多个环境中同时执行特定的任务。例如,程序员可以在应用程序中利用多线程技术在测试舱进行并行化测试。使用单线程技术,应用程序需要动态分

5、配空间来保存每个舱中的测试结果。应用程序需要手动维护每个记录及其对应的测试舱的关系。而使用多线程技术,应用程序可以创建独立的线程来处理每个测试舱。然后,应用程序可以使用线程局部变量为每个线程创建测试结果记录。测试舱与结果记录间的关系是自动维护的,使应用程序代码得以简化。选择合适的操作系统微软公司的Windows9x系列操作系统不支持多处理器计算机。所以,你必须在多处理器计算机上运行WindowsVista/XP/2000/NT4.0系统来享受多处理器带来的好处。而且,即使在单处理器计算机上,多线程程序在WindowsVista/XP/2000/NT4.

6、0上的性能也比在Windows9x上好。这要归功于WindowsVista/XP/2000/NT4.0系统有着更为高效的线程切换技术。但是,这种性能上的差别在多数多线程程序中体现得并不是十分明显。对于程序开发,特别是编写和调试多线程程序而言,WindowsVista/XP/2000/NT4.0系列操作系统比Windows9x系列更为稳定,当运行操作系统代码的线程被暂停或终止的时候,操作系统的一些部分有可能出于不良状态中。这种情况使得Windows9x操作系统崩溃的几率远远高于WindowsVista/XP/2000/NT4.0系统的几率。所以,NI公司

7、推荐用户使用运行WindowsVista/XP/2000/NT4.0操作系统的计算机来开发多线程程序。LabWindows/CVI中的多线程技术简介NILabWindows/CVI软件自二十世纪九十年代中期诞生之日起就支持多线程应用程序的创建。现在,随着多核CPU的广泛普及,用户可以使用LabWindows/CVI来充分利用多线程技术的优势。与WindowsSDKthreadingAPI(Windows软件开发工具包线程API)相比,LabWindows/CVI的多线程库提供了以下多个性能优化:·Threadpools帮助用户将函数调度到独立的线程中执

8、行。Threadpools处理线程缓存来最小化与创建和销毁线程相关的开销。·Thread-sa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。