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


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


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


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


那为什么要引入线程呢?


1、便于调度

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

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

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


程序和进程的区别


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

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

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



进程和线程的区别


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

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

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

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

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

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

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值