碧波液压网 欢迎你,游客。 登录 注册

多线程技术在加速度计数据采集中的实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  0 引言

  在设计大型测控系统软件过程中,经常会遇到需要多个任务同时工作的情况,比如在进行数据采集的同时还需要进行数据显示和处理等。大多数软件都是基于单线程的方法,数据采集完成后才能对数据进行相应的处理和显示。若采用多线程技术则可以把这些任务分配给多个线程,一个执行数据采集,一个执行实时显示和处理。多个线程的同时执行,在一段时间内并行完成多个任务,既加快了系统的速度,又提高了软件的执行效率。加速度计测试系统数据采集软件需要多任务并行运行,因此采用了线程池的方法实现多线程编程。

  1多线程技术

  多线程是和进程联系在一起的。进程常被定义为应用程序运行的一个实例。而线程是指进程内部可独立执行的单元,是操作系统对系统资源的基本调度单位。每个进程至少拥有一个线程,这个线程被称为主线程。一个进程也可以拥有多个线程,同属于一个进程的所有线程都共享进程的虚拟地址空间,线程之间可以共享进程的全局数据和资源。此外,每个线程都单独保存一些数据结构、CPU寄存器指针和堆栈,用于保存线程的执行环境。

  多线程是指在同一个时间段内至少有两个线程在执行程序代码的程序。当用户让操作系统开始执行一个特定的程序的时候,操作系统就创建了主线程(main thread)。缺省情况下,操作系统查找名为main或WinMain的函数,并在main或WinMain的函数中开始执行主线程。用户在多线程程序中可根据需要创建其它的线程,这些线程被称作次线程(secondary thread)。在多线程程序中,操作系统允许每一个线程运行一段时间,然后再切换到另一个线程。操作系统允许一个特定线程执行的时段被称作一个时间片(time2slice)。操作系统暂停一个线程的执行,转而允许另一个线程执行它的时间片的行为被称作线程切换(thread-switch)。对单CPU微机来说,多线程并不是真正的同时运行,而是时间片轮流执行。由于时间片通常非常短,所以使得多线程看起来是在同时运行。

  2 在LabWindows/CVI中实现多线程技术

  LabWindows/CVI是NI公司推出的交互式C语言开发平台,是目前应用较为广泛的虚拟仪器软件开发平台。它将功能强大、使用灵活的C语言平台与用于数据采集分析和显示的测控专业工具有机地结合起来,加上它的集成化开发环境、交互式编程方法、函数面板和丰富的库函数等特点,LabWin2dows/CVI成为工程技术开发人员编写检测系统、自动测试系统、数据采集系统、过程监控系统等应用软件的理想平台。

  在LabWindows/CVI环境下有多种方法实现多线程技术,除了运用异步定时器和线程池外,还可以使用Windows SDK中提供的函数。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论