程序、进程、线程、并发的特点及作用

顺序编程:

即程序中的所有事物在任意时刻都只能执行一个步骤。在未学习并使用并发编程前,你使用的都是顺序编程。

什么是程序、进程、线程、并发?

程序和进程

程序并不能单独执行(例如需要CPU的调度、寄存器、随机存储存储器RAM等等协助工作),只有将程序加载到内存中,系统为它分配资源后才能执行,这种正在执行的程序叫做进程。进程是系统进行资源分配调度的一个基本单元,每个进程都有自己独立的地址空间。

1 .程序和进程的区别:

程序是指令的集合,是进程运行的静态描述文本。
进程是一个独立的完整的任务。例如:QQ、淘宝、DNF等,这些都是进程。系统会为这些任务分配唯一的端口号以示区分,运行在唯一端口号上的程序就是进程。

2. 进程的特点

  • 独立性:进程是独立的实体,有自己独有的资源和地址空间。
  • 隔离性:每个进程之间互不打扰。
  • 动态性:拥有自己的声明周期和不同状态。

为什么会产生线程呢?

在顺序编程(单线程)模式下,可能发生进程阻塞(该程序控制范围之外的某些条件,例如I/O、抛异常等等,而导致不能继续向前执行),整个程序都将停止下来,直到外部条件发生变化。但是,如果使用并发编程,那么当一个任务阻塞时,程序中的其他任务还可以继续向前执行,事实上,从性能的角度来看,如果没有任务会阻塞,那么在单处理机上使用并发就没有任务意义,还会造成系统资源的浪费。

线程

线程是进程的一个实体,也是CPU调度和分配的基本单位,他是比进程更小的能独立运行的基本单位,有时又被称为轻权进程或轻量级进程。相对进程而言,线程是一个更加趋近于执行体的概念。进程在执行过程中拥有独立的内存单元,而线程自己基本上不拥有系统资源,也没有独立的地址空间(它的一切都是依赖于进程给的,是进程组成的基本单元),线程的改变只代表了CPU执行过程的改变,而没有发生进程所拥有的资源的变化。除了CPU之外,计算机内软硬件资源与线程无关,但它可与同属于一个进程的其他线程共享进程的全部资源。
总结一句话:进程可以划分为多个分离的、独立运行的任务,这些任务就是线程。也可以说,线程就是进程的组成部分,多个线程组成一个进程。

1. 特点:

  • 没有独立的系统资源,它的系统资源是父进程给它的。
  • 一个线程可以创建和撤销另一个线程。
  • 并发性:线程在执行过程中并发的执行。
  • 在系统调度中:例如时间片轮转法。线程是抢占式执行的。

2. 好处:

线程可以使程序从系统调度中抽身出来,即代码不必知道它是运行在具有一个还是多个CPU的机器上。所以,使用线程机制是一种建立透明的、可扩展的程序的方法,如果程序运行的太慢,为机器添加一个CPU就能很容易的加快程序的运行速度。多任务和多线程往往是使用多处理器系统的最合理方式。

融合起来形成一个便于理解的例子

例如我们需要通过代码的形式生产一台汽车,这些代码就是程序。生产汽车是一个整体的独立的任务,而这个任务就是进程。生产汽车需要很多小的任务支持它,如需要生产车胎、生产车窗、生产引擎等等。这些小的任务就是线程。大多数操作系统都会轮流的调用线程,但由于CPU的执行较快,可看做这些线程是在并发执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值