进程,线程,,程序,数据的之间的区别很微妙,但却非常重要。
  举例如下:一个厨师,正在准备制作冰淇淋蛋糕。厨房里有各种做蛋糕的原料,面 粉、鸡蛋、糖,冰淇淋等,还有制作工具,搅拌机、旋转托盘,锅等。厨师手边还有一个《制作冰淇淋蛋糕的工艺流程说明手册》。
  那么这本手册其实就是“程序”,主要是某种计算机能识别的形式描述的算法;厨师就是CPU,主要是按照程序,对计算机其它软硬件设备进行操作;而制作蛋糕的原料就是所需的输入数据,制作蛋糕的工具就是计算机各种设备了。而进程就是制作蛋糕的整个过程:厨师阅读食谱,根据食谱使用蛋糕制作工具和原料,加工成可口的冰淇淋蛋糕。
  厨师在烧着水的时候,同时活面,就这就是多线程.
那么,假如这个时候突然厨房另一段的某个灶炉着火了,那么厨师就会马上停止制作蛋糕;而开始根据《厨房安全突发事件处理手册》其中的灭火指南,拿起灭火器去灭火。那么其实这就是CPU从一个进程切换到了另外一个进程,而且每个进程都有各自的程序(《制作冰淇淋蛋糕的工艺流程说明手册》和《厨房安全突发事件处理手册》)。当火被扑灭后,厨师又会继续去制作他还未完成的冰淇淋蛋糕。
  总结:一个进程是某种类型的一个活动,它有程序、输入、输出及状态。单个CPU被若干进程共享,它使用某种调度算法决定何时停止一个进程的工作,并转而为另一个进程提供服务。