我正在創建一個測試程序來測試CPU性能和溫度,同時CPU使用率介於70%到80%之間。我正在使用線程在循環中運行計算並不停止。但是CPU增加到100%。我不知道維持使用率不高於80%,但高於70%。我可以提供一些建議嗎?創建一個C程序來加載CPU利用率> 70%但低於80%
void *doCalculate(void *a);
int main(void)
{
pthread_t threads[NUM_THREAD];
int thread_args[NUM_THREAD];
int i,s;
//Create Threads
for (i=0; i<NUM_THREAD; ++i)
{
thread_args[i] = i;
printf("spawning thread %d\n", i);
s=pthread_create(&threads[i], NULL, doCalculate, (void *)
&thread_args[i]);
if(s!=0)
handle_error(s,"pthread_create");
}
//Wait for the threads to finish
for (i=0; i<NUM_THREAD; ++i) {
pthread_join(threads[i], NULL);
}
return 1;
}
void *doCalculate(void *a){
int tid;
tid = *((int *) a);
printf("Thread %d!\n", tid);
float x = 1.5f;
while (1)
{
x *= sin(x)/atan(x) * tanh(x) ;
}
}
這是我的臨時解決方案。我在函數doCalculation中放置了printf和for循環。
void *doCalculate(void *a){
int tid;
tid = *((int *) a);
printf("Thread %d!\n", tid);
float x = 1.5f;
while (1)
{
int i=0;
printf("\t\n\n");
x *= sin(x)/atan(x) * tanh(x) ;
for(;i<15000;i++){}
}
}
這裏沒有代碼 – Sathiya
我的道歉。請看看, –
ÓK。我可能會找到解決方案。我把printf和for循環放在函數doCalculate中。 –