首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >为什么While(1)会导致单核CPU利用率到达100%?

为什么While(1)会导致单核CPU利用率到达100%?

原创
作者头像
Eulogy
发布2025-08-13 00:08:48
发布2025-08-13 00:08:48
2900
举报
文章被收录于专栏:笔记本笔记本

为什么While(1)会导致单核CPU利用率到达100%

如果CPU是单核的,并且有个线程中有while(1)的程序,那么就会导致CPU的利用率飙升到100%,所以有while(1)的线程是非常不安全的,那么为什么呢?

我们知道CPU是通过分配时间片来让处于 就绪态 的线程上处理机运行的,那么while(1)的线程会永远处理 就绪状态 ,它就会不断地占用CPU,然后回到就绪队列,抢到CPU之后继续上CPU运行。由于就绪队列中有这个线程的存在,无论是否还存在着其它的 就绪线程,CPU都会被线程占用着。所以会达到100%的利用率。

虽然 CPU在达到100%利用率的时候还是能调度多个线程,但持续的 100% 利用率带来的问题包括:

(1)系统响应变慢

  • 线程间频繁切换开销(上下文切换)变多,浪费 CPU 时间
  • 新到的高优先级任务可能得不到及时响应

(2)能耗升高,发热加剧

  • CPU 长时间满载运行,功耗和温度都会升高
  • 影响硬件寿命和散热

(3)其他任务资源争抢激烈

  • 其他线程只能分到很少的时间片,执行效率低下
  • 用户体验和系统吞吐量下降

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么While(1)会导致单核CPU利用率到达100%
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档