加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

程序、进程、线程的联系与差异

发布时间:2021-12-11 12:27:28 所属栏目:教程 来源:互联网
导读:程序:一组指令的有效集合 进程:程序的执行就是进程。也可以把进程看成一个独立的程序,在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己。进程是资源分配的基本单位,也是调度运行的基本单位。 线程:线程被人们认为是轻量级

程序:一组指令的有效集合
 
进程:程序的执行就是进程。也可以把进程看成一个独立的程序,在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己。进程是资源分配的基本单位,也是调度运行的基本单位。
 
线程:线程被人们认为是轻量级的进程,它是进程中单独运行的一路程序。换句话说,就是一个进程可以包含多个线程,并且至少有一个主线程,同时同一进程的线程共享该进程的代码和数据。于此同时,每一个线程又都有自己的堆栈,这些堆栈对于线程来说是私有的。线程是处理机调度的基本单位。
 
那为什么要引入线程呢?
 
1、便于调度
 
2、线程可以共享进程的数据和代码,从而比进程需要通过消息才能通信来得更加简单。启动和切换的速度也比进程快。
 
3、具有高并发性,可以启动多个线程执行同程序的不同部分。
 
4、充分利用处理器的功能。让每一个处理器上运行不同线程,从而实现应用程序的并发性。
 
程序和进程的区别
 
1、程序是静态的,它知识一组冰冷的指令的集合,不具有任何的运行意义。而进程是程序运行在数据集上的动态过程,进程是一个动态实体,它应创建而产生,应调度执行,应等待资源或者是事件而处于等待状态,应完成了任务而被撤销,它有自己的生命周期,它反应了程序在数据集上运行的全部动态过程。
 
2、进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程。
 
3、进程还具有并发性和交往性,而程序却是封闭的。
 
进程和线程的区别
 
1、一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。
 
2、进程是资源分配的基本单位,线程是处理机调度的基本单位,所有的线程共享其所属进程的所有资源与代码。
 
3、线程执行过程之中很容易进行协作同步,而进程需要通过消息通信进行同步。
 
4、线程的划分尺度更小,并发性更高。
 
5、线程共享进程的数据的同时,有自己私有的的堆栈。
 
6、线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。它必须组成进程才能被执行。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读