在windows xp中通过c程序制作一个独立的进程?

时间:2010-06-24 04:56:33

标签: c windows

我有一个包含4个主题的应用程序,其中2个是基于事件的,2个不是基于事件的。

问题是我必须隔离2个非基于事件的线程,其中while(1)循环正在执行,这需要占用大量的CPU,并且这个用量甚至达到100%,

我认为隔离这些线程可以减少cpu的使用,

这是一个好主意,如果有任何其他方法,请参阅我。

我也想知道如何隔离线程。

提前完成。

2 个答案:

答案 0 :(得分:2)

作为一般规则,您很少想简单地降低CPU使用率。虽然你当然可以可以这样做(例如,通过半定期睡眠一段时间),但实际上并没有太多成就。当然,假设线程正在对CPU时间做一些有用的事情,减少CPU使用量只会在更长的时间内延长计算时间。

要获得真正的好处,请降低CPU密集型线程的优先级。这允许线程尽可能快地完成计算,只要它们是唯一准备好运行的线程。同时,这也意味着只要有任何更高优先级的线程准备好运行,优先级较低的线程就会消耗绝对 no CPU时间 1

  1. 好吧,如果你想获得技术,Windows有一个反饥饿机制,让准备运行的低优先级线程获得微不足道的位的CPU时间,但它是如此之少,以至于它通常不会影响更高优先级的线程,足以引起注意。

答案 1 :(得分:1)

如果在每次循环后让线程在很短的时间内休眠,那么应该减少CPU负载。