杂谈:进程、线程、纤程

进程和线程有什么区别?

  进程是一个程序运行起来的状态,线程是一个进程中的不同执行路径。
  专业角度:进程是操作系统分配资源的基本单位,线程是执行调度的基本单位(线程共享进程的内存空间,不会分配自己独立的内存空间)

线程的实现

linux中的实现:

就是一个普通的进程,只不过和其他进程共享资源(内存空间、全局数据等)。

其他操作系统:

纤程

  纤程:用户态的线程,线程中的线程,切换和调度不需要进过OS
  JVM中的一个线程对应着OS中的一个线程,而多个纤程才对应OS中的一个进程。
java目前需要用扩展包才能实现(2021.06.10)

进程调度

  内核进程调度器决定:该哪一个进程运行?何时运行?运行多长时间?(可以自己实现,实现的原则:最大限度压榨CPU资源)

调度的方式

  抢占式/非抢占式

进程调度的基本概念

  • 进程的类型:
      IO密集型 大部分时间用于等待 IO
      CPU密集型 大部分时间用于计算
  • 进程的优先级:
      实时进程>普通进程(0~99)
      进程的nice值(-20~19)
  • 时间分配:
      linux采用按优先级的CPU时间比
      其他系统多采用按优先级的时间片

其他概念

僵尸进程:

  父进程创建子进程后,会维护子进程的一个PCB结构。子进程退出,如果父进程没有释放,那么子进程会成为一个僵尸进程(ps -ef|grep defuct)

孤儿进程:

  子进程未结束前,父进程已经结束
  孤儿进程会成为init进程的孩子

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值