多线程多任务是什么意思

如题所述

1. 多任务

在计算中,多任务是一种多个任务(也称之为进程)共享处理资源(如CPU)的方法。在多任务操作系统上,例如Windows XP,您可以同时运行多个应用程序。多任务实质是指操作系统在每个计算任务间快速切换,以致于看上去不同的应用似乎在同时执行多项操作。

当CPU时钟频率稳步提高时,不仅应用程序的运行速率可以更快,而且操作系统在应用间的切换速率也更快。这样就提供了更好的整体性能——一台计算机可以同时发生多项操作,每项应用可以更快速地运行。

2. 单核

对于拥有单个CPU核的计算机,任意时刻只能运行一项任务,这也意味着CPU主动地执行该任务的指令。多任务通过调度(Scheduling)哪一项任务在哪一时刻运行以及何时切换到另一项任务,解决了这一问题。

图1。单核系统支持多任务操作系统。文字处理、Email、r网页浏览器、防病毒软件、进程、操作系统、CPU核

3. 多核

当运行于多核系统时,多任务操作系统可以真正地并发执行多项任务。针对不同的任务,多个计算引擎独立地工作。

例如,在一个双核系统,有四项应用,如文字处理、电子邮件、网页浏览和防病毒软件,每项应用可以同时访问一个独立的处理器核。您可以在检查电子邮件的同时输入一封文档,真正实现多任务,从而改善应用的整体性能。

图2。双核系统支持多任务操作系统,如Windows XP,以真正地同时执行两项任务。文字处理、Email电子邮件、网页浏览器、防病毒软件、进程、操作系统、CPU核

操作系统通过在独立的CPU核之间划分不同的应用或进程,从而更有效地执行多项应用。该计算机可以将工作任务分摊化——每个核在管理和切换原先一半数量的应用任务,并提供更好的整体吞吐量与性能。实际上,这些应用任务是并行地执行的。

至页首
4. 多线程

多线程将多任务的思想拓展到应用,因此,您可以将单个应用中的特定步骤进一步分解成一个个线程,每个线程可以并行运行。操作系统不仅在不同的应用任务间分配处理时间,而且在一项应用的每个线程间分配处理时间。

工程与科学方面的应用程序通常运行于专用的系统(可能没有多任务化)。而一个多线程NI
LabVIEW程序可以被分解成四个线程:用户界面、数据采集、网络通信以及数据录入。您可以分别赋予这四个线程的优先级,以便它们独立工作。于是,在多线程应用中,多项任务可以与该系统执行的其他应用并行执行。

图3。双核系统支持多线程。测量与控制、数据采集、用户界面、网络通信、数据录入、线程、操作系统、CPU核

利用多线程的应用具有以下几大优势:

更有效的CPU利用率
更好的系统可靠性
改善多处理器计算机的性能

在许多应用中,您同步地调用资源,如仪器,这些仪器调用时常需要较长的时间完成。在一个单线程应用中,一个同步调用可能会阻止或防止该应用中的其他任务执行,直至该操作完成。而多线程避免了这样的情况出现。

当同步调用在一个线程中运行时,程序中不依赖于该调用的其它部分可以在其它线程中运行。该程序的执行可以持续地推进,而不是停滞直到完成同步调用。这样,一个多线程应用实现了CPU使用效率的最大化,因为当该应用的所有线程都可以同时运行时,CPU不会处于空闲状态。

5. 利用LabVIEW实现多线程

NI LabVIEW自动地将每个应用程序分解为多个执行线程。LabVIEW系统内部已经内置了对复杂任务的线程管理功能。

图4。LabVIEW帮助用户执行多个执行线程。DAQ助手、数据、线程、写入测量文件、信号

6. LabVIEW中的多任务

LabVIEW使用操作系统提供的抢占式多线程机制的同时,它也使用合作式的多线程机制。具有抢占式多线程的操作系统与处理器采用有限数量的线程,因而在某些情况下,这些系统会回归到使用合作式的多线程。

执行系统以抢占式多任务的方式处理线程;然而,可用线程的数目是有限的。对于高度并行的应用,执行系统在可用线程忙时使用合作式多任务机制。而且,操作系统也是以抢占式多任务的方式来处理应用与其它任务的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-29
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的

多任务是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务。Windows就是一个支持多任务的操作系统,比起DOS的单任务系统,确实方便了许多本回答被提问者采纳
相似回答