如何降低C中的CPU利用率

时间:2016-02-15 06:19:28

标签: c executable sleep usleep

我有一个在linux(64位)机器上运行的程序,它占用100%的CPU,执行时间更短。它不应该消耗100%的CPU,因为其他程序并行运行在同一台机器上。我需要减少我的程序的CPU利用时间,这样它也可以将CPU提供给其他进程。

通过在我的程序中的某些位置使用sleep,我可以降低CPU利用率,但执行时间会增加更多。

有没有降低CPU利用率的方法?

2 个答案:

答案 0 :(得分:1)

我认为它的价值很高......只需为您的流程分配高优值,这样就不会影响您的系统性能......更高的优值[-20到20]会降低流程的优先级。 要分配好的值,请使用以下步骤 开放终端 2.type ps -ef(打印所有程序) 3.找到您的程序ID(比如11455是您的程序ID) 4. renice nicevalue Processid(例如:-renice 18 11455)

检查链接http://www.computerhope.com/unix/renice.htm

答案 1 :(得分:0)

我认为你可以使用线程,thread_A和thread_B,并使用sempahores在它们之间发送信号。信号量会休眠thread_B直到thread_A生成输出或释放信号量。

thread_A                                    thread_B
   |                                          |
   |(may/may not be running)                  | (sleeps)
   -->(release semaphore)                 -->(wakes up thread_B)
   |                                          |(works on data and
   |                                          | to wait again)
   |                                          |
   |(may/may not be running)                  | (sleeps)
   -->(release semaphore)                 -->(wakes up thread_B)

|

相关问题