如何将自己变成c 多线程程的生物,在多种任务之间随意切换

多线程与多任务的区别 - National Instruments
多线程与多任务的区别
此文章节选自
从这篇文章中,您能了解到平衡在一个应用程序中多线程和多任务的重要性
在计算中,多任务是一种多个任务(也称之为进程)共享处理资源(如CPU)的方法。在多任务操作系统上,例如Windows XP,您可以同时运行多个应用程序。多任务实质是指操作系统在每个计算任务间快速切换,以致于看上去不同的应用似乎在同时执行多项操作。
当CPU时钟频率稳步提高时,不仅应用程序的运行速率可以更快,而且操作系统在应用间的切换速率也更快。这样就提供了更好的整体性能——一台计算机可以同时发生多项操作,每项应用可以更快速地运行。
对于拥有单个CPU核的计算机,任意时刻只能运行一项任务,这也意味着CPU主动地执行该任务的指令。多任务通过调度(Scheduling)哪一项任务在哪一时刻运行以及何时切换到另一项任务,解决了这一问题。
图1。单核系统支持多任务操作系统。文字处理、Email、r网页浏览器、防病毒软件、进程、操作系统、CPU核
当运行于多核系统时,多任务操作系统可以真正地并发执行多项任务。针对不同的任务,多个计算引擎独立地工作。
例如,在一个双核系统,有四项应用,如文字处理、电子邮件、网页浏览和防病毒软件,每项应用可以同时访问一个独立的处理器核。您可以在检查电子邮件的同时输入一封文档,真正实现多任务,从而改善应用的整体性能。
图2。双核系统支持多任务操作系统,如Windows XP,以真正地同时执行两项任务。文字处理、Email电子邮件、网页浏览器、防病毒软件、进程、操作系统、CPU核
操作系统通过在独立的CPU核之间划分不同的应用或进程,从而更有效地执行多项应用。该计算机可以将工作任务分摊化——每个核在管理和切换原先一半数量的应用任务,并提供更好的整体吞吐量与性能。实际上,这些应用任务是并行地执行的。
多线程将多任务的思想拓展到应用,因此,您可以将单个应用中的特定步骤进一步分解成一个个线程,每个线程可以并行运行。操作系统不仅在不同的应用任务间分配处理时间,而且在一项应用的每个线程间分配处理时间。
工程与科学方面的应用程序通常运行于专用的系统(可能没有多任务化)。而一个多线程NI LabVIEW程序可以被分解成四个线程:用户界面、数据采集、网络通信以及数据录入。您可以分别赋予这四个线程的优先级,以便它们独立工作。于是,在多线程应用中,多项任务可以与该系统执行的其他应用并行执行。
图3。双核系统支持多线程。测量与控制、数据采集、用户界面、网络通信、数据录入、线程、操作系统、CPU核
利用多线程的应用具有以下几大优势:
 更有效的CPU利用率
 更好的系统可靠性
 改善多处理器计算机的性能
在许多应用中,您同步地调用资源,如仪器,这些仪器调用时常需要较长的时间完成。在一个单线程应用中,一个同步调用可能会阻止或防止该应用中的其他任务执行,直至该操作完成。而多线程避免了这样的情况出现。
当同步调用在一个线程中运行时,程序中不依赖于该调用的其它部分可以在其它线程中运行。该程序的执行可以持续地推进,而不是停滞直到完成同步调用。这样,一个多线程应用实现了CPU使用效率的最大化,因为当该应用的所有线程都可以同时运行时,CPU不会处于空闲状态。
5. 利用LabVIEW实现多线程
NI LabVIEW自动地将每个应用程序分解为多个执行线程。LabVIEW系统内部已经内置了对复杂任务的线程管理功能。
图4。LabVIEW帮助用户执行多个执行线程。DAQ助手、数据、线程、写入测量文件、信号
6. LabVIEW中的多任务
LabVIEW使用操作系统提供的抢占式多线程机制的同时,它也使用合作式的多线程机制。具有抢占式多线程的操作系统与处理器采用有限数量的线程,因而在某些情况下,这些系统会回归到使用合作式的多线程。
执行系统以抢占式多任务的方式处理线程;然而,可用线程的数目是有限的。对于高度并行的应用,执行系统在可用线程忙时使用合作式多任务机制。而且,操作系统也是以抢占式多任务的方式来处理应用与其它任务的。
7. 更多多核编程资源
书签收藏和分享
本网站使用cookies来为您提供更好的浏览体验。多线程与并发面试题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
多线程与并发面试题
&&面试题文档
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢3被浏览113分享邀请回答0添加评论分享收藏感谢收起写回答在Java多线程中,什么是上下文切换(context-switching)?_百度知道
在Java多线程中,什么是上下文切换(context-switching)?
上下文切换是存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行。上下文切换是多任务操作系统和多线程环境的基本特征。
用良心做教育
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 python循环变成多线程 的文章

 

随机推荐