Operating system 如何编写一个使用30%CPU的程序?
这是一个面试问题:编写一个使用30%CPU的程序?您将如何编写这样一个程序?也许这不是您所期望的,但请尝试:Operating system 如何编写一个使用30%CPU的程序?,operating-system,cpu-usage,Operating System,Cpu Usage,这是一个面试问题:编写一个使用30%CPU的程序?您将如何编写这样一个程序?也许这不是您所期望的,但请尝试: #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;
#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);
}
}
#包括
#包括
#包括
#定义IMAX 99999
#定义睡眠9999
int main(int argc,char*argv[]){
龙我;
对于(;;){
对于(i=0;i可能这不是您所期望的,但请尝试:
#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);
}
}
#包括
#包括
#包括
#定义IMAX 99999
#定义睡眠9999
int main(int argc,char*argv[]){
龙我;
对于(;;){
对于(i=0;i这在我的笔记本电脑上工作
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
Private子表单1\u显示(发送方作为对象_
e作为System.EventArgs)处理我。如图所示
Dim numProc As Integer=Environment.ProcessorCount
对于x作为整数=1到numProc
尺寸t作为新线程。线程(foo的地址)
t、 IsBackground=True
t、 开始()
下一个
端接头
私人副职()
常数使用率为双=0.35'35%
暗睡眠为整数=CInt((1-用法)*100)
调暗stpw作为新秒表
做
stpw.Reset()
stpw.Start()
做
在stpw.ElapsedMilliseconds<100时循环-睡眠
线程。线程。睡眠(睡眠)
环
端接头
和其他人一样,我确实对这个问题的意图感到好奇。这在我的笔记本电脑上很有效
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
Private子表单1\u显示(发送方作为对象_
e作为System.EventArgs)处理我。如图所示
Dim numProc As Integer=Environment.ProcessorCount
对于x作为整数=1到numProc
尺寸t作为新线程。线程(foo的地址)
t、 IsBackground=True
t、 开始()
下一个
端接头
私人副职()
常数使用率为双=0.35'35%
暗睡眠为整数=CInt((1-用法)*100)
调暗stpw作为新秒表
做
stpw.Reset()
stpw.Start()
做
在stpw.ElapsedMilliseconds<100时循环-睡眠
线程。线程。睡眠(睡眠)
环
端接头
和其他人一样,我真的很想知道这个问题的意图。在面试官的额头上用凿子。这是关于C语言的系统编程,还是关于使用汇编的问题?这个问题的“领域”是什么?是的,让我们在一个超频到10000太赫兹的64核处理器上测试一下。我怀疑是否投票同意这个问题在关闭或面试官开火时重复:特例是在面试官的额头上用凿子。这是关于C语言的系统编程,还是关于使用汇编的问题?问题的“领域”是什么?是的,让我们在64核处理器超频到10000太赫兹的情况下测试一下。我对投票结束这个问题表示怀疑d或面试官重复:特例现在你只需要读取cpu利用率,并动态调整数字直到达到30%现在你只需要读取cpu利用率,并动态调整数字直到达到30%