对进程和线程一个形象的比喻

进程和线程是计算机领域的重要概念,还记得当年上操作系统课时,老师让我们每个人写一篇文章谈谈对两者的认识、

我觉得通过一个形象的比喻来解释两者的区别,可能效果会更好。

如果火车站开放一个窗口售票,只能一个个处理买票人的请求,这时候就好比是一种“单线程”形式,这样的效率其实是很低的。

但更好的方式是开放多个窗口,同时进行售票,效率就会提升很多了。这就好比是一种“多线程”形式。

那么,可以得出结论:一般情况下,多线程的处理速度要高于单线程。

现在我们站在更高的角度来看这个问题,一个火车站,就好比一个“进程”,它包含了多个“线程”。

那么,多个火车站同时售票,就还比有了多个“进程”。进程和线程是一种很简单的关系,进程包含了线程。

如果把火车站比作进程,那售票窗口就是线程。

再来分析一下。多线程一定比单线程效率高吗?并不是绝对的。

其实还要考虑一个因素,那就是系统资源。每开启一个线程,都需要消耗一定的系统资源,而单线程是独享系统资源,单位时间内吞吐速度更快。

举个例子,当前流行的缓存系统Memcache和Redis,前者是多线程模型,后者是单线程模型。可是在性能测试时,Redis并没有表现的比Memcache差。

这其中的原因,很值得思考。

时间: 2024-10-08 02:38:56

对进程和线程一个形象的比喻的相关文章

进程与线程的区别(整理)

整体概念上:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位 本质上:进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同. 先说进程: 背景: ①关于计算机系统:CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情. ②事实1:CPU太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背.在多任务执行的时候,CPU总是轮流执行那些任

进程与线程的区别,以及多进程与多线程

什么是线程 什么是线程?线程与进程与有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识.我不能确保能把它讲的话,也不能确保讲的内容全部都正确.即使这样,我也希望尽可能地把他讲通俗一点,讲的明白一点,因为这是个一直困扰我很久的,扑朔迷离的知识领域,希望通过我的理解揭开它一层一层神秘的面纱. 任务调度 线程是什么?要理解这个概念,须要先了解一下操作系统的一些相关概念.大部分操作系统(如Windows.Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执

(1)进程与线程

什么是线程 什么是线程?线程与进程与有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识.我不能确保能把它讲的话,也不能确保讲的内容全部都正确.即使这样,我也希望尽可能地把他讲通俗一点,讲的明白一点,因为这是个一直困扰我很久的,扑朔迷离的知识领域,希望通过我的理解揭开它一层一层神秘的面纱. 任务调度 线程是什么?要理解这个概念,须要先了解一下操作系统的一些相关概念.大部分操作系统(如Windows.Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执

进程和线程的一个简单形象的解释

转眼暑假一过,2015年的校招即将开启大幕,身为计算机专业的朋友们,在面试中是不是经常会被问到一个问题:进程和线程的区别,今日偶然看到阮一峰的博客,他用一个很好的类比把他们解释的清晰易懂,会不会突然让大家有种豁然开朗的感觉呢? 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握,但下面的类比解释,是不是让你明白很多呢? 1.计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2.假定工厂的电力有限,一次只能供给一个车间使用.也就

进程与线程的一个复杂解释

关于进程和线程,面试的时候被问了两次都没有答出来.第一次问完稍微看了下概念,并没有完全理解所以也没有记住,所以第二次被问到的时候也没回答出来o(╯□╰)o.. 所以这次把这个问题彻底解决一下. 标题是模仿阮一峰大大的"进程与线程的一个简单解释",见http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html,里面比喻得很形象. 定义 进程(英语:process),是计算机中已运行程序的实体.进程为曾经是分时系统的基本

该进程或线程自上一个步骤以来已更改

相关解决办法如下: VS进行高度时,断点处提示"该进程或线程自上一个步骤以来已更改" 每个断点跑两遍似的. 这个是由于在VS环境中 勾上了 "工具\选项--->调试--要求源文件与原始版本完全匹配"这个项 该进程或线程自上一个步骤以来已更改 英文表述:The process or thread has changed since last step 以下是是从网上摘录的解决办法. Q: I have a console application that exe

如何在 Linux 中统计一个进程的线程数

编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn/article-6240-1.html译者: strugglingyouth本文地址:https://linux.cn/article-6240-1.html 2015-9-17 10:29    收藏: 5 问题: 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会有多少线程

计算机必知必会:进程process与线程thread 进程定义为一个正在运行的程序的实例

http://www.nowamagic.net/librarys/veda/detail/1741进程和线程这对概念的理解也是很难的,至今网络上可查的资料对其的理解出入都挺大,在不同的操作系统中,如linux和windows中,其概念和实现都是有出入的.因此,我在这里结合我自己的理解谈下这两个概念,讲的都是一般性的概念,并且主要是基以WINDOWS的. 一般将进程定义为一个正在运行的程序的实例.我们在任务管理器重所看到的每一项,就可以理解为一个进程,每个进程都有一个地址空间,这个地址空间里有可

进程与线程的一个简单解释(转)

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1. 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2. 假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工的时候,其他车间都必须停工.背后的含义就是,单个CPU一次只能运行一个任务. 3. 进程就好比工厂的车间,它代表CPU所能处理的单个任务.任一时刻,CPU总是运行一个进程,其