CPU多线程浅说.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
写在前面 “线程”这个东西真是个用个非专业术语很难说明白的东西。真不知发明它的人为什么起了个这么个名字。 如果您好信儿到网上查一下 “什么是线程?”就会发现,解释它的词比 “线程”这个词更难理解,那是相当专业。 可是,多线程技术又是当前流行CPU 都在采用的一项重要技术。大有了解的必要。 本文力图以通俗的语言来解读一下多线程。正因为力求避免使用艰涩难懂的专业用语,所以难免不严谨,不 到位,好在不是给专家们看的。大部分东西都是从网络文章中整理而成,纯属个人理解,绝非权威观点。下面就 开始 “浅说”吧。 CPU 多线程浅说 先举个例子吧 假设有一座很长很长的桥,特点是单向、单车道。现在来了三个拉伤病员的车队要过桥,每个车队的伤病员 各有轻重。如果先可一个车队过,轻重伤病员都一次过去了。可另两个车队的重伤病员就可能失去救治的希望。 怎么办?分车轮流上桥。这个车队的重伤员车上桥后,紧跟着上桥的是另个车队的重病号车上桥。重伤病员的车 轮流上桥后,再轮流上中度的伤病员,最后轮流上轻伤病员…… 这样,每个车队都没有完全停下来,如果忽略其它车队的车,每个车队都在行进。 这就是简单的 “线程”原理。在 “线程”原理中,“程序”就好比车队,“进程”就好比行进中的车队,“线 程”就好比车。而单桥、单车道就好比是 “单线程”。多车队插花上桥,就好比是 “并发”“多任务”。先过一 队,再过另一队好比是 “单任务”。 好了,下面来说说这些个 “好比”吧。 “进程”“程序” “线程” 进程是程序在计算机上的一次执行活动。当运行一个程序时,就启动了一个进程。进程就是在某种程度上相 互隔离的、独立运行的程序。可以这样理解,进程是指程序运行(执行)的过程。 程序是一组代码,可以执行相关的数据计算与操作。这些代码由一条条指令组成,每一组代码就是一条线程。 线程是一系列相关指令,或者是程序的特殊段。在电脑中,无论做任何操作,都需要动用到线程。每个线程 都是可以独立运行的。线程是CPU 调度的最小单位。 所以,进程就是程序中多个线程执行的过程。也就是说,进程包含着多个线程。所以线程基本上是轻量级(更 小)的进程。有人还叫它 “微进程”。 单线程与单任务 早期的电脑,在某一段时间里只能运行一个程序。只有在结束一个程序后,才能运行下一个程序。就好比在 处理文档的同时,不能听歌一样。而运行一个程序,就是在一个接一个执行程序中的线程。在任何单位时间内(一 个线程的执行时间长度),电脑只在执行一个线程 (也许这就是常说的 “单线程”吧)。可以说是“单线程,单任 务”。这样的电脑早就被淘汰了。好比前面说的先过一队车,再过另一队车。 单线程与多任务 随着电脑技术的发展,科学家发明了单线程,多任务的并发技术。 同一个电脑系统中如果允许一个以上的程序处于运行状态,这便是多任务。现代的电脑系统几乎都是多任务 的。比如可以边听音乐,边改文档啥的。而且这些任务之间丝毫不会相互干扰。 俗话说 “一心不能二用”。对于只有一颗芯(CPU)的电脑来讲,怎样才能做到“单线程,多任务”,实现 “一芯二用”呢?科学家们弄出了个 “并发”技术— “时间片轮转进程调度算法”。其原理的简单理解是:操作 系统不断的从一个线程的执行切换到另一个线程的执行,由于这些线程分属于不同的程序,所以,各运行的程序 轮流使用CPU,由于各程序轮流占用CPU 的时间非常短 (比如10 毫秒),让使用者根本感觉不出来程序是被 断续执行的。就好像是多个程序(任务)在同时执行。但实际上在任何一个时间段内,仅有一个程序(不是甲, 就是乙或其它)在使用 CPU。最小使用的时间(时间片)应该能执行一个完整的线程。这就好比上面说的多车 队插花上桥。 超线程HT (Hyper-Threading) 为了闲着的CPU 尽管单线程,多任务技术解决了电脑可以同时运行多程序的问题,但并没有解决现代CPU 资源空闲的问题, 如:空闲的高速缓存、寄存器、总线之类的东西。为此,科学家们又弄出了一个 “超线程”技术。为CPU 高速 的运算核心准备更多的待处理数据,减少运算核心的闲置时间。 两座桥 超线程技术的关键,就是在一个 CPU 中,弄出两个线程(好比在前面例子中的一座桥外又加了一座桥)。 被称为 “并行” (不是“并发”)。每个线程都是采用 “单线程,多任务”技术的。 使用超线程技术的CPU 需要多加入一个逻辑处理

文档评论(0)

考试教学资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档