LabVIEW用了多线程,程序是不是会跑的更快些

简介: LabVIEW用了多线程,程序是不是会跑的更快些

LabVIEW用了多线程,程序是不是会跑的更快些


这个取决于具体的应用程序。如果应用程序中的任务顺序执行,不会看到任何改善。比方说,程序打开文件,从文件中读取数据,然后关闭文件。多线程并不能使的应用程序跑的更快,因为上述操作不能同时发生。


在单处理器系统中,多个线程仍然共享CPU时间。因此多个很耗CPU的并行线程并不会因为它们线程化了而使计算进行的更快。事实上,它们可能运行的更慢,因为操作系统要花额外的时间进行线程间的切换。


在多处理器系统中,多线程在多数情况下都是利大于弊的,因为它允许多个耗CPU的线程同时运行。但是,在处理器上调度线程是操作系统的工作,它并不能总是保证应用程序的不同线程运行在不同的处理器上。


无论是单处理器还是多处理器系统,如果在耗CPU的线程和耗I/O的线程间共享时间总是有利的。当一个线程在读或者写网络(或者是GPIB,硬盘,DAQ设备),别的耗CPU的线程可以继续运行。在单线程系统中,在等待I/O操作完成的过程中,CPU经常处于闲置状态。


多核系统包含一个CPU,CPU包含两个或两个以上内核。每个内核有独立的微处理器。一个多核的处理器在一个实体封装内进行多处理任务。多核系统共享计算资源。在多处理器系统中,计算资源通常有多份,例如,L2缓存、前端总线。


多核系统与多处理系统性能相近,但是成本更低,因为多核系统不需要支持多处理器的主板。


多任务


在计算中,多任务是指多个任务(进程)共享处理资源(例如,CPU)的一种方法。在Windows等多任务操作系统上,可同时运行多个应用程序。多任务指的是操作系统在计算任务之间快速切换到能力。对于用户来说,多任务就是不同的应用程序同时执行不同的操作。


CPU时钟的速度随时间逐渐加快,不仅应用程序运行速度加快,操作系统也能在应用程序之间更快地切换。这保证了更好的整体性能。在计算机上,许多操作可同时发生,单个应用程序可运行得更快。


单核


如果计算机只有一个CPU内核,一次只能运行一个任务,表示CPU正在执行某个任务的指令。多任务机制在一个时间点上,安排某个任务运行,另一个任务等待。

e2365fe02e3b2b6f51015aadb87e2aed.png

编辑


添加图片注释,不超过 140 字(可选)


图1:单核系统在一个CPU上实现多任务


多核


在多核系统上运行时,多任务操作系统可事实上同时运行多个任务。 多个计算引擎在不同的任务上独立工作。


例如,在双核系统上,文字处理、电子邮件、网页浏览和杀毒软件可分别占用一个单独的处理器核。 检查电子邮件和文字处理可同步进行,从而提高应用程序的性能。


90b9ef473c1a2727f8cb2cc68834e77e.png

编辑


添加图片注释,不超过 140 字(可选)


图2:双核系统使得操作系统可以同时执行两个任务


操作系统将不同的应用程序(进行)分配在不同的CPU核上,可更有效地执行多个应用程序。计算机可将每个内核管理的工作分配在不同的内核上,在一半数量的应用程序之间切换,从而实现更好的性能。事实上,应用程序是并行运行的。


多线程


多线程是将多任务的理念延伸到应用程序内。可将应用程序内的操作进一步划分为多个独立的线程。 线程之间并行运行。操作系统将处理时间分配在不同的应用程序上,也分配在应用程序的线程上。


在多线程的NI LabVIEW程序中,一个应用程序会被分为四个线程:用户界面线程、数据采集线程、网络通信线程、记录线程。可根据需要优先安排这些线程,这样线程就可独立操作。在多线程应用程序中,多个任务可与系统上运行的其他程序并行执行。

a987ce71d5c3f5dca3bb467a5d630a96.png


编辑


添加图片注释,不超过 140 字(可选)


图3:双核系统的多线程


启用了多线程的应用程序具有下列优势:


更高效的CPU使用率


更好的系统稳定性


多处理器系统上更优越的性能


许多应用程序会同步调用资源(例如,仪器)。 完成这些调用通常需要花很多时间。在单线程应用程序中,同步调用会阻碍或挂起应用程序中的其他任务,直到调用完成。多线程可避免发生这种情况。


同步调用在一个线程运行时,程序的其他部分在其他线程运行。 应用程序的执行会持续进行,而不是被挂起直到同步调用结束。通过这种方法,多线程应用程序最大限度地提高了CPU的效率,当应用程序的线程运行就绪时,CPU不会处于空闲状态。


LabVIEW中的多线程


LabVIEW自动将每个应用程序分解为多个执行线程。线程管理的复杂任务内化在LabVIEW执行系统之中。

619275cb16fd72f91cc00aadf4b7a880.png

编辑


添加图片注释,不超过 140 字(可选)



图4:LabVIEW使用多个执行线程


LabVIEW中的多任务


LabVIEW在支持多线程的操作系统上使用抢占式多线程机制。 LabVIEW也使用协同式多线程机制。抢占式多线程的操作系统和处理器使用固定数量的线程。所以,在某些情况下,这些系统会转而使用协同式多线程。


执行系统在使用了线程的VI上进行抢占式多任务机制。但是,可用线程的数量有限。对于高度并行的应用程序,当可用的线程繁忙时,执行系统使用协同式多任务。操作系统也处理应用程序和其他任务之间的抢占式多任务机制。


LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序


上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

相关文章
|
5天前
|
缓存 负载均衡 安全
在Python中,如何使用多线程或多进程来提高程序的性能?
【2月更文挑战第17天】【2月更文挑战第50篇】在Python中,如何使用多线程或多进程来提高程序的性能?
|
5天前
|
人工智能 Java API
Python 潮流周刊#28:两种线程池、四种优化程序的方法
Python 潮流周刊#28:两种线程池、四种优化程序的方法
30 1
|
7月前
|
存储 Linux 调度
确保并发执行的安全性:探索多线程和锁机制以构建可靠的程序
在当今计算机系统中,多线程编程已成为常见的需求,然而,同时也带来了并发执行的挑战。为了避免数据竞争和其他并发问题,正确使用适当的锁机制是至关重要的。通过阅读本文,读者将了解到多线程和锁机制在并发编程中的重要性,以及如何避免常见的并发问题,确保程序的安全性和可靠性。通过实际案例和代码示例来说明如何正确地使用多线程和锁机制来构建可靠的程序。
21 1
|
5天前
|
数据采集 人工智能 数据可视化
Scala多线程爬虫程序的数据可视化与分析实践
Scala多线程爬虫程序的数据可视化与分析实践
|
5天前
|
安全 Windows
LabVIEW分配多少线程?
LabVIEW分配多少线程?
10 1
|
5天前
|
消息中间件 程序员 调度
Python并发编程:利用多线程提升程序性能
本文探讨了Python中的并发编程技术,重点介绍了如何利用多线程提升程序性能。通过分析多线程的原理和实现方式,以及线程间的通信和同步方法,读者可以了解如何在Python中编写高效的并发程序,提升程序的执行效率和响应速度。
|
5天前
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
94 0
|
5天前
|
安全 Java 开发者
Python多线程编程实战:提高程序执行效率的策略
Python多线程编程实战:提高程序执行效率的策略
128 1
|
5天前
|
Java
如何在Java中使用多线程提高程序性能
【2月更文挑战第2天】在当今的计算机应用领域中,性能是一个不可忽视的重要因素。为了提高程序的性能,我们可以采用多种方法。其中一种方法是使用多线程。本文将介绍如何在Java中使用多线程来提高程序性能。
29 2
|
5天前
|
安全 前端开发 测试技术
《C++ Concurrencyin Action》第10章--多线程程序的测试和调试
《C++ Concurrencyin Action》第10章--多线程程序的测试和调试