LabVIEW用了多线程,程序是不是会跑的更快些
这个取决于具体的应用程序。如果应用程序中的任务顺序执行,不会看到任何改善。比方说,程序打开文件,从文件中读取数据,然后关闭文件。多线程并不能使的应用程序跑的更快,因为上述操作不能同时发生。
在单处理器系统中,多个线程仍然共享CPU时间。因此多个很耗CPU的并行线程并不会因为它们线程化了而使计算进行的更快。事实上,它们可能运行的更慢,因为操作系统要花额外的时间进行线程间的切换。
在多处理器系统中,多线程在多数情况下都是利大于弊的,因为它允许多个耗CPU的线程同时运行。但是,在处理器上调度线程是操作系统的工作,它并不能总是保证应用程序的不同线程运行在不同的处理器上。
无论是单处理器还是多处理器系统,如果在耗CPU的线程和耗I/O的线程间共享时间总是有利的。当一个线程在读或者写网络(或者是GPIB,硬盘,DAQ设备),别的耗CPU的线程可以继续运行。在单线程系统中,在等待I/O操作完成的过程中,CPU经常处于闲置状态。
多核系统包含一个CPU,CPU包含两个或两个以上内核。每个内核有独立的微处理器。一个多核的处理器在一个实体封装内进行多处理任务。多核系统共享计算资源。在多处理器系统中,计算资源通常有多份,例如,L2缓存、前端总线。
多核系统与多处理系统性能相近,但是成本更低,因为多核系统不需要支持多处理器的主板。
多任务
在计算中,多任务是指多个任务(进程)共享处理资源(例如,CPU)的一种方法。在Windows等多任务操作系统上,可同时运行多个应用程序。多任务指的是操作系统在计算任务之间快速切换到能力。对于用户来说,多任务就是不同的应用程序同时执行不同的操作。
CPU时钟的速度随时间逐渐加快,不仅应用程序运行速度加快,操作系统也能在应用程序之间更快地切换。这保证了更好的整体性能。在计算机上,许多操作可同时发生,单个应用程序可运行得更快。
单核
如果计算机只有一个CPU内核,一次只能运行一个任务,表示CPU正在执行某个任务的指令。多任务机制在一个时间点上,安排某个任务运行,另一个任务等待。
编辑
添加图片注释,不超过 140 字(可选)
图1:单核系统在一个CPU上实现多任务
多核
在多核系统上运行时,多任务操作系统可事实上同时运行多个任务。 多个计算引擎在不同的任务上独立工作。
例如,在双核系统上,文字处理、电子邮件、网页浏览和杀毒软件可分别占用一个单独的处理器核。 检查电子邮件和文字处理可同步进行,从而提高应用程序的性能。
编辑
添加图片注释,不超过 140 字(可选)
图2:双核系统使得操作系统可以同时执行两个任务
操作系统将不同的应用程序(进行)分配在不同的CPU核上,可更有效地执行多个应用程序。计算机可将每个内核管理的工作分配在不同的内核上,在一半数量的应用程序之间切换,从而实现更好的性能。事实上,应用程序是并行运行的。
多线程
多线程是将多任务的理念延伸到应用程序内。可将应用程序内的操作进一步划分为多个独立的线程。 线程之间并行运行。操作系统将处理时间分配在不同的应用程序上,也分配在应用程序的线程上。
在多线程的NI LabVIEW程序中,一个应用程序会被分为四个线程:用户界面线程、数据采集线程、网络通信线程、记录线程。可根据需要优先安排这些线程,这样线程就可独立操作。在多线程应用程序中,多个任务可与系统上运行的其他程序并行执行。
编辑
添加图片注释,不超过 140 字(可选)
图3:双核系统的多线程
启用了多线程的应用程序具有下列优势:
更高效的CPU使用率
更好的系统稳定性
多处理器系统上更优越的性能
许多应用程序会同步调用资源(例如,仪器)。 完成这些调用通常需要花很多时间。在单线程应用程序中,同步调用会阻碍或挂起应用程序中的其他任务,直到调用完成。多线程可避免发生这种情况。
同步调用在一个线程运行时,程序的其他部分在其他线程运行。 应用程序的执行会持续进行,而不是被挂起直到同步调用结束。通过这种方法,多线程应用程序最大限度地提高了CPU的效率,当应用程序的线程运行就绪时,CPU不会处于空闲状态。
LabVIEW中的多线程
LabVIEW自动将每个应用程序分解为多个执行线程。线程管理的复杂任务内化在LabVIEW执行系统之中。
编辑
添加图片注释,不超过 140 字(可选)
图4:LabVIEW使用多个执行线程
LabVIEW中的多任务
LabVIEW在支持多线程的操作系统上使用抢占式多线程机制。 LabVIEW也使用协同式多线程机制。抢占式多线程的操作系统和处理器使用固定数量的线程。所以,在某些情况下,这些系统会转而使用协同式多线程。
执行系统在使用了线程的VI上进行抢占式多任务机制。但是,可用线程的数量有限。对于高度并行的应用程序,当可用的线程繁忙时,执行系统使用协同式多任务。操作系统也处理应用程序和其他任务之间的抢占式多任务机制。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。