CPU占用率是什么?
生活随笔
收集整理的這篇文章主要介紹了
CPU占用率是什么?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是昨晚上在朋友圈發的一個討論
回答的問題很多
因為這個問題,我晚上也沒早睡,就想把這個講清楚
說這個問題之前我們先了解下時間片調度算法,因為用這個來講比較清楚。
CPU可以執行任務,CPU給哪個進程執行,哪個進程就可以占用CPU去做它想做的事情,如果進程的優先級比較低,調度器每次調度的時候,就容易被高優先級的進程插隊,這個進程實際上占有CPU的時間就會比較短。
什么是CPU是利用率呢?
先說下,這個指的是有操作系統的情況下,有多任務系統,那系統有一個調度室,調度室分配給進程的使用CPU時間T1,進程在被調度時,進程實際占用CPU時間T2,T2/T1就是這個進程的CPU占用率了。
如果我們這樣寫代碼
#include?<sys/types.h> #include?<unistd.h> #include?<stdio.h> #include?<stdlib.h> int?main(void) {printf("%d:Cpu?start...\n",getpid());while(1){sleep(1);}return?0; }這時候的CPU占用率是
如果我們代碼修改成這樣
#include?<sys/types.h> #include?<unistd.h> #include?<stdio.h> #include?<stdlib.h> int?main(void) {int?i=0;printf("%d:Cpu?start...\n",getpid());while(1){for(i=0;i<100000000;i++){}sleep(1);}return?0; }CPU 占用率如下
如果我把代碼修改成這樣
#include?<sys/types.h> #include?<unistd.h> #include?<stdio.h> #include?<stdlib.h> int?main(void) {int?i=0;printf("%d:Cpu?start...\n",getpid());while(1){for(i=0;i<100000000;i++){}//sleep(1);}return?0; }CPU占用率如下:
關于這個問題,還有很多回復
至于能不能出現超過100%的CPU占用率,在多核的情況下肯定是可以的,至于單核是不會出現這個情況的。
歡迎一起交流
推薦閱讀:
專輯|Linux文章匯總
專輯|程序人生
專輯|C語言
我的知識小密圈
關注公眾號,后臺回復「1024」獲取學習資料網盤鏈接。
歡迎點贊,關注,轉發,在看,您的每一次鼓勵,我都將銘記于心~
總結
以上是生活随笔為你收集整理的CPU占用率是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有什么能难倒程序员,教你如何下载付费歌
- 下一篇: SQL插入数据-insert用法