使程序的cpu佔用率呈現正弦曲線

在《編程之美》上面,作者給的解法考慮到了其他程序對cpu的佔用而影響最終曲線形狀的問題。作者調用了windows的API,而我的系統是linux系統,沒有圖形化的界面可顯示cpu運行曲線,所以我就省力只打印此程序的cpu佔用情況,然後根據此程序的cpu佔用值驗證程序的正確性。

/*
 * 使cpu的運行圖像向一條正弦曲線
 * StoryMonster  2016/7/15
 */
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>

int main()
{
    const double pi = 3.1415926;
    //本例中將一個正弦週期等分爲20,使每一個時間常量爲2*pi/20;
    unsigned int currentTimeCount = 0;
    while(true)
    {
        unsigned int busy = sin(currentTimeCount*2*pi/20)*500 + 500;
        unsigned int relax = 1000 - busy;
        usleep(relax*1000);
        clock_t tim1 = clock();
        clock_t tim2 = clock();
        while(tim2 - tim1 < busy*1000) tim2 = clock();
        currentTimeCount++;
        if(currentTimeCount==20) currentTimeCount = 0;
    }
    return 0;
}
發佈了65 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章