【操作系统】用户级线程和内核级线程区别+例题

用户级线程

概念

  • 使用应用程序线程库创建,存在于用户态
  • 操作系统不知道线程的细节,只能看到一个进程,这也导致了系统只能以对待整个进程的方式对待整个线程,导致了用户级线程的以下缺点。

优点

  • 线程切换不需要切换到内核空间(请对比下面的内核级线程)
  • 可根据自己需要选择不同的调度算法(这点容易被忽略)
  • 用户级线程的实现和操作系统无关

缺点

  • 当进程中有一个线程阻塞时,整个进程都阻塞
  • 不能发挥多处理机的优势,操作系统内核看不到用户级多线程的存在,只能以单个进程进行调度,此时内部众多线程串行运行

关于这里有道题:
给你100个用户级线程,100个内核级线程,为什么用户级线程的运行时间是内核级的100倍?
因为用户级多线程本质上还是属于串行运行,处理机运行这100个用户级线程的时候相当于运行这个大的进程,然后里面的100个用户级线程排队运行。与此做对照的是内核级线程,属于真正的并行,100个内核级线程并行运行,时间为一个内核级线程运行的时间。

内核级线程

概念

  • 线程运行需要内核的支持

优点

  • 能够发挥多处理机的优势,实现真正的多线程,这里的多线程程序一般是使用操作系统提供的系统调用实现的
  • 进程中的一个线程被阻塞,不影响其他线程的运行

缺点

  • 由于很多工作需要切换到内核态,切换开销大,效率低
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值