码迷,mamicode.com
首页 > 编程语言 > 详细

程序、进程、线程的联系与区别

时间:2014-09-27 01:03:38      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:线程 进程 程序


程序:一组指令的有效集合


进程:程序的执行就是进程。也可以把进程看成一个独立的程序,在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己。进程是资源分配的基本单位,也是调度运行的基本单位。


线程:线程被人们认为是轻量级的进程,它是进程中单独运行的一路程序。换句话说,就是一个进程可以包含多个线程,并且至少有一个主线程,同时同一进程的线程共享该进程的代码和数据。于此同时,每一个线程又都有自己的堆栈,这些堆栈对于线程来说是私有的。线程是处理机调度的基本单位。


那为什么要引入线程呢?


1、便于调度

2、线程可以共享进程的数据和代码,从而比进程需要通过消息才能通信来得更加简单。启动和切换的速度也比进程快。

3、具有高并发性,可以启动多个线程执行同程序的不同部分。

4、充分利用处理器的功能。让每一个处理器上运行不同线程,从而实现应用程序的并发性。


程序和进程的区别


1、程序是静态的,它知识一组冰冷的指令的集合,不具有任何的运行意义。而进程是程序运行在数据集上的动态过程,进程是一个动态实体,它应创建而产生,应调度执行,应等待资源或者是事件而处于等待状态,应完成了任务而被撤销,它有自己的生命周期,它反应了程序在数据集上运行的全部动态过程。

2、进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程。

3、进程还具有并发性和交往性,而程序却是封闭的。



进程和线程的区别


1、一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。

2、进程是资源分配的基本单位,线程是处理机调度的基本单位,所有的线程共享其所属进程的所有资源与代码。

3、线程执行过程之中很容易进行协作同步,而进程需要通过消息通信进行同步。

4、线程的划分尺度更小,并发性更高。

5、线程共享进程的数据的同时,有自己私有的的堆栈。

6、线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。它必须组成进程才能被执行。

程序、进程、线程的联系与区别

标签:线程 进程 程序

原文地址:http://blog.csdn.net/ivyvae/article/details/39587579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!