如果CPU是单核的,并且有个线程中有while(1)的程序,那么就会导致CPU的利用率飙升到100%,所以有while(1)的线程是非常不安全的,那么为什么呢?
我们知道CPU是通过分配时间片来让处于 就绪态 的线程上处理机运行的,那么while(1)的线程会永远处理 就绪状态 ,它就会不断地占用CPU,然后回到就绪队列,抢到CPU之后继续上CPU运行。由于就绪队列中有这个线程的存在,无论是否还存在着其它的 就绪线程,CPU都会被线程占用着。所以会达到100%的利用率。
虽然 CPU在达到100%利用率的时候还是能调度多个线程,但持续的 100% 利用率带来的问题包括:
(1)系统响应变慢
(2)能耗升高,发热加剧
(3)其他任务资源争抢激烈
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。