进程与线程

背景

  • 线程,是cpu调度的基本单位
  • 进程,是系统资源分配的基本单位
    tips: 上述两种解释是两者之间的本质区别

考虑因素

这里的考虑因素是指在何种情况下,使用线程或进程。

  • 并发性
    在考虑到并发性时,需要考虑到切换效率(线程>进程),本质上是关注上下文的切换
  • 内存
    进程具有独立的虚拟地址空间,而线程是没有的,是共享所属进程的虚拟地址空间,有栈、PC(program counter)、本地存储等独立空间。
  • 所属关系
    一个线程属于一个进程,一个进程可以拥有多个线程
  • 健壮性
    线程需要更加关注健壮性,而进程而

tips:

  • 上下文切换所指的上下文是表示线程/进程运行时的现场环境的记录:
    • 系统环境:cpu,寄存器,程序计数器(PC)
    • 用户空间信息:内核空间,pcb
      进程进行上下文切换时,需要将上述两个信息进行记录;而对于同一进程的线程只需要记录系统环境的信息,而不同进程的线程仍需将两个信息进行记录。
  • 独立的虚拟地址空间意味着进程的运行环境是隔离运行的,即使部分进程异常停止了,其他进程仍会继续运行,部分异常进程会被重新运行(如nginx)。另一方面,也说明了若使用多线程则需要考虑共享资源的问题,也就是需要进行加锁解锁来保证不同线程的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值