进程与线程

  • 在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。
    进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
    线程:是程序执行流的最小单位,是进程内一个相对独立的、可调度的执行单元。
  • 进程和线程的关系:
    在这里插入图片描述
  • 线程和进程的区别和优劣:
  1. 进程是资源分配的最小单位,线程是程序执行的最小单位
  2. 进程自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此cpu切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比创建一个进程要小很多,线程的上下文切换的性能消耗要小于进程。
  3. 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。
  4. 但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程就死掉了,而一个进程死掉并不会对另一个进程造成影响,因为进程有自己独立的地址空间。
  • 同步和异步
    对于一次方法的调用来说,同步方法调用一旦开始,就必须等待该方法的调用返回,后续的方法才可以继续执行;异步的话,方法调用一旦开始,就可以立即返回,调用者可 以执行后续的方法,这里的异步方法通常会在另一个线程里真实的执行,而不会妨碍当 前线程的执行。
  • 并行与并发
    都可以表示在同一时间范围内有两个或多个任务同时在执行,但在任务调度的时候还是有区别。
    并行:
    在这里插入图片描述
    并发:
    在这里插入图片描述
    在两个任务执行的时候,
    并发状态下:是没有时间上的重叠,两个任务是交替执行的,由于切换速度非常快,所以外界看起来就相当于在同一时刻下多个任务在一起执行;
    而并行状态下,存在时间上的重叠,也就是说并行才是真正意义上同一时刻可以有多个任务一起执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值