CPU占用率是什么?
這是昨晚上在朋友圈發(fā)的一個(gè)討論
回答的問(wèn)題很多
因?yàn)檫@個(gè)問(wèn)題,我晚上也沒(méi)早睡,就想把這個(gè)講清楚
說(shuō)這個(gè)問(wèn)題之前我們先了解下時(shí)間片調(diào)度算法,因?yàn)橛眠@個(gè)來(lái)講比較清楚。
CPU可以執(zhí)行任務(wù),CPU給哪個(gè)進(jìn)程執(zhí)行,哪個(gè)進(jìn)程就可以占用CPU去做它想做的事情,如果進(jìn)程的優(yōu)先級(jí)比較低,調(diào)度器每次調(diào)度的時(shí)候,就容易被高優(yōu)先級(jí)的進(jìn)程插隊(duì),這個(gè)進(jìn)程實(shí)際上占有CPU的時(shí)間就會(huì)比較短。
什么是CPU是利用率呢?
先說(shuō)下,這個(gè)指的是有操作系統(tǒng)的情況下,有多任務(wù)系統(tǒng),那系統(tǒng)有一個(gè)調(diào)度室,調(diào)度室分配給進(jìn)程的使用CPU時(shí)間T1,進(jìn)程在被調(diào)度時(shí),進(jìn)程實(shí)際占用CPU時(shí)間T2,T2/T1就是這個(gè)進(jìn)程的CPU占用率了。
如果我們這樣寫(xiě)代碼
#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; }這時(shí)候的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占用率如下:
關(guān)于這個(gè)問(wèn)題,還有很多回復(fù)
至于能不能出現(xiàn)超過(guò)100%的CPU占用率,在多核的情況下肯定是可以的,至于單核是不會(huì)出現(xiàn)這個(gè)情況的。
歡迎一起交流
推薦閱讀:
專(zhuān)輯|Linux文章匯總
專(zhuān)輯|程序人生
專(zhuān)輯|C語(yǔ)言
我的知識(shí)小密圈
關(guān)注公眾號(hào),后臺(tái)回復(fù)「1024」獲取學(xué)習(xí)資料網(wǎng)盤(pán)鏈接。
歡迎點(diǎn)贊,關(guān)注,轉(zhuǎn)發(fā),在看,您的每一次鼓勵(lì),我都將銘記于心~
總結(jié)
以上是生活随笔為你收集整理的CPU占用率是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 没有什么能难倒程序员,教你如何下载付费歌
- 下一篇: SQL插入数据-insert用法