如何编写一个使用30%CPU的程序?

时间:2011-05-07 14:54:05

标签: operating-system cpu-usage

这是一个面试问题:编写一个使用30%CPU的程序?你会怎么写这样的节目?

2 个答案:

答案 0 :(得分:3)

也许这不是您的预期,但请尝试:

#include <unistd.h>
#include <stdio.h>
#include <time.h>
#define IMAX 999999
#define SLEEP 9999

int main( int argc, char *argv[] ) {
    long i;
    for(;;) {
        for(i=0; i<IMAX; i++) {}
        usleep(SLEEP);
    }
}

试验SLEEP长度。这个给了我笔记本25%的负载。 IMAX 999给出了76%。 没有睡觉= 100%。

答案 1 :(得分:1)

这适用于我的笔记本电脑

Private Sub Form1_Shown(sender As Object, _
                        e As System.EventArgs) Handles Me.Shown
    Dim numProc As Integer = Environment.ProcessorCount
    For x As Integer = 1 To numProc
        Dim t As New Threading.Thread(AddressOf foo)
        t.IsBackground = True
        t.Start()
    Next
End Sub

Private Sub foo()
    Const usage As Double = 0.35 '35%
    Dim sleep As Integer = CInt((1 - usage) * 100)
    Dim stpw As New Stopwatch
    Do
        stpw.Reset()
        stpw.Start()
        Do

        Loop While stpw.ElapsedMilliseconds < 100 - sleep
        Threading.Thread.Sleep(sleep)
    Loop
End Sub

我确实像其他人一样怀疑这个问题的意图。