CVI中多线程技术.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
: 文件类型 技术指南 是否NI支持: 是 发布日期: Apr 18, 2011 LabWindows™/CVI 中的多线程技术 概览 多核编程基础系列 白皮书 多任务、多线程 和多处理这些术语经 常被交替地使用,但 是它们在本质上是不 同的概念。多任务是 指操作系统具有在任 务间快速切换使得这 些任务看起来是在同 步执行的能力。在一 个抢占式多任务系统 中,应用程序可以随 时被暂停。使用多线 程技术,应用程序可 以把它的任务分配到 单独的线程中执行。 在多线程程序中,操 作系统让一个线程的 代码执行一段时间 (被称为时间片) 后,会切换到另外的 线程继续运行。暂停 某个线程的运行而开 始执行另一个线程的 行为被称为线程切 换。通常情况下,操 作系统进行线程切换 的速度非常快,令用 户觉得有多个线程在 同时运行一样。多处 理指的是在一台计算 机上使用多个处理 器。在对称式多处理 (SMP)系统中, 操作系统自动使用计 算机上所有的处理器 来执行所有准备运行 的线程。借助于多处 理的能力,多线程应 用程序可以同时执行 多个线程,在更短的 时间内完成更多的任 务。 单线程应用程序移 植到多核处理器上运 行不会获得性能上的 改进,这是因为它们 只能在其中一个处理 器上运行,而不能像 多线程应用程序那样 在所有的处理器上同 时运行。而且单线程 应用程序需要承受操 作系统在处理器间切 换所需要的开销。为 了在多线程操作系统 和/或多处理器计算 机上获得最优异的性 能,我们必须使用多 线程技术来编写应用 程序。 目录 1. 进行多线程编程的原 因 2. 选择合适的操作系统 3. LabWindows/CVI 中的多线程技术简介 4. 在 LabWindows/CVI 的辅助线程中运行代 码 5. 保护数据 6.  避免死锁 7.  监视和控制辅助线 程 8.  进程和线程优先级 9.  消息处理 10.  使用线程局部变量 11.  在线程局部变量中 存储动态分配的数据 12.  在独立线程中运行 的回调函数 13.  为线程设定首选的 处理器 14.  额外的多线程技术 资源 进行多线程编程的原 因 在程序中使用多线程 技术的原因主要有四 个。最常见的原因是 多个任务进行分割, 这些任务中的一个或 多个是对时间要求严 格的而且易被其他任 务的运行所干涉。例 如,进行数据采集并 显示用户界面的程序 就很适合使用多线程 技术实现。在这种类 型的程序中,数据采 集是时间要求严格的 任务,它很可能被用 户界面的任务打断。 在 LabWindows/CVI 程序中使用单线程方 法时,程序员可能需 要从数据采集缓冲区 读出数据并将它们显 示到用户界面的曲线 上,然后处理事件对 用户界面进行更新。 当用户在界面上进行 操作(如在图表上拖 动光标)时,线程将 继续处理用户界面事 件而不能返回到数据 采集任务,这将导致 数据采集缓冲区的溢 出。而在 LabWindows/CVI 程序中使用多线程技 术时,程序员可以将 数据采集操作放在一 个线程中,而将用户 界面处理放在另一个 线程中。这样,在用 户对界面进行操作 时,操作系统将进行 线程切换,为数据采 集线程提供完成任务 所需的时间。 在程序中使用多线程 技术的第二个原因是 程序中可能需要同时 进行低速的输入/输 出操作。例如,使用 仪器来测试电路板的 程序将从多线程技术 中获得显著的性能提 升。在 LabWindows/CVI 程序中使用单线程技 术时,程序员需要从 串口发送数据,初始 化电路板。,程序需 要等待电路板完成操 作之后,再去初始化 测试仪器。必须要等 待测试仪器完成初始 化之后,再进行测 量,。在 LabWindows/CVI 程序中使用多线程技 术时,你可以使用另 一个线程来初始化测 试仪器。这样,在等 待电路板初始化的同 时等待仪器初始化。 低速的输入/输出操 作同时进行,减少了 等待所需要的时间总 开销。 在程序中使用多线程 技术的第三个原因是 借助多处理器计算机 来提高性能。计算机 上的每个处理器可以 都执行一个线程。这 样,在单处理器计算 机上,操作系统只是 使多个线程看起来是 同时执行的,而在多 处理器计算机上,操 作系统才是真正意义 上同时执行多个线程 的。例如,进行数据 采集、将数据写入磁 盘、分析数据并且在 用户界面

文档评论(0)

bhyq + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档