进程(process)和线程(thread) 是所有学习计算机行业人员绕不过去的两个基本概念,但是它们却十分的抽象,十分不容易理解.
最近总结了一个例子来解释一下,可能要好一点.
1.我们知道,CUP是一个计算机的核心,它就像一个工厂一样,只要启动计算机,它就会一刻不停的运动.我这样假设,这个工厂的名字是xxx工厂,这个工厂里面有5个车间,车间门牌号是,"1","2","3","4","5",每个车间的标准配置(注意,是一个车间的配置)是有10个工人,有一个厕所,有一个三个床位的卧室,一个一次性可以容纳5个人的餐厅.
2.我们假设,这个工厂只能自己发电使用,这样电量就十分有限,每次只能供工厂内的一个车间正常运行.(cpu一次只能执行一个任务)(任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。)
3.我们假设,
星期一:
给车间"1"供电,现在"车间1"正常运行,这个车间生产的是茶叶蛋,它里面只有一个工人
这时候我们就可以这样认为:
一个车间就是一个进程.(一个任务至少有一个进程,每个进程都是拥有空间的或者说资源)
一个工人就是一个线程(线程不具有空间或者说资源) ,这个车间有一个工人,煮茶叶蛋他一个人就可以搞定.(一个进程中至少要有一个线程).
4.
星期二:
给车间"2"供电,现在"车间2"正常运行,这个车间生产的是国产红旗轿车,它里面有10个工人
这时候我们就可以这样认为:
一个车间就是一个进程.(一个任务至少有一个进程)
一个工人就是一个线程 ,这个车间有10个工人,生产一辆红旗轿车,需要多人共同合作才能完成.(一个进程可以包含多个线程)
原文地址:http://blog.csdn.net/lunlun426/article/details/40383585