如何理解:程序/进程/线程及并行/并发?

如何理解:程序/进程/线程及并行/并发?

程序:

  • 含有指令和数据的文件,被存储在磁盘或被存储在其他的数据存储设备中。
  • ⚠️:程序是静态的
    • 例如:电脑上有多个应用程序,QQ音乐这个软件也是由一串代码编写的,如果我们没有打开QQ音乐,那么这个程序没有被启动,他的代码也没有被运行,只是一串写好的代码,所以程序是静态的。

进程:

  • 是指程序的一次执行过程,也是系统运行程序的基本单位。
  • 系统运行一个程序也就是一个进程从创建到运行再到消亡的过程。一个进程就是一个执行的程序,它在计算机中一个指令接着一个指令的执行,每个进程还会占有CPU时间、内存空间等,也就是当程序在执行时,会被操作系统加载到内存中。
  • ⚠️:进程是动态的
    • 例如:我们点开QQ音乐,该程序就会被启动,而当我们退出这个程序时,该进程也就结束了。

线程:

  • 线程是进程的一个实体,也是进程的一条执行路径。
  • 线程是一个比进程更小的执行单位。一个进程在执行的过程可以产生一个/多个线程。
  • 例如:
    • 点开QQ音乐会出现:音乐馆、视频、电台等模式,每一个单独的模式就是一个线程,这里有很多个模式,也就表明它是一个多线程。
      在这里插入图片描述

进程和线程的区别:

  • 同类的多个线程共享同一快内存空间和一组系统资源,系统在各个线程之间做切换工作时,负担比进程小得多,线程也叫轻量级进程。
  • 每个进程都是独立的,同一个进程中的线程可能会相互影响。
  • 进程属操作系统的范畴,同一段时间内,可以同时执行一个/多个程序,线程则是在同一个程序中同时执行一个/多个程序段。

并行:

  • 指同一时刻,多条指令在多个处理器上同时执行
  • 例如:
    • 你吃饭吃到一半,有电话来了,你一边吃饭一边接电话。

并发:

  • 指同一时刻,只有一条指令执行,但多个进程快速切换,宏观上来看是多个进程在执行,但实际上是交替执行,不是同时执行,而是快速的交替切换执行。
  • 例如:
    • 你吃饭吃到一半,有电话来了,你停止吃饭,去接电话,接完电话继续吃饭。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值