程序,进程,线程以及并发,并行

程序(Program):
程序的为了让计算机执行某些操作或解决某个问题而编写一系列有序的指令集合。软件的目的:提高人们的工作效率,简化工作流程。这是动态概念。可以说小到我们刚接触编程时编写的"Hello , World!",大到现在市面上流行的各式各样的软件,都可以称之为程序。
进程(Process):
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 同样是动态概念。
进程的特点:
1.结构性:由程序块、数据块、控制块 组成。
2.共享性:同一程序运行在不同的数据集上时构成不同的进程。即多个进程可以共享一个程序。(如一台电脑同时登陆多个 QQ)
3.动态性:进程是程序在数据集合上的一次执行过程,是动态概念。它有生命周期,由创建、执行、消亡、。
4.独立性:每个进程都以各自独立的速度在CPU上执行。
5.并发性:进程的并发性能够提高资源的利用率和系统的效率。
6.制约性:并发进程之间存在制约关系,也需要相互等待或互通消息,保证程序执行的可再现性和计算结果的唯一性。
打开电脑中的任务管理器我们可以看到,进程数是一直在变化的,说明系统在不断进行资源分配和调度。
在这里插入图片描述
线程(Thread)
是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。 可以看成是进程内的多条执行路径。
进程的特点:并发性、共享性、动态性、结构性
在接触多线程之前,我们编写的程序仅包含一个主线程,而现在,我们可以选择将不同的任务交给多个线程来执行,由此大大提高程序运行的效率。

在上面进程,线程的特点中都有并发性,那么接下来介绍并发,并行以及它们之间的区别。

并发性(concurrency) 是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。

并行(parallelism) ,是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行。

两者的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。前者是逻辑上的同时发生,而后者是物理上的同时发生。
打个比喻并行就好比一个食堂窗口同时给三个同学打饭,并发则好比三个食堂窗口同时给三个人打饭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值