谁能解释我为什么以下无限循环会占用大量CPU(CPU usage has increased upto 50% if total core is 2 and 100% if total CPU core is just 1
)
但是,如果我取消注释该行,它将减少到1或2个CPU使用率?
public class Program
{
public static void Main(string[] args)
{
while (true)
{
//Console.WriteLine("hello..");
}
}
}
原因是因为您的CPU在执行该循环时无法执行其他任何操作。CPU并不知道无限循环并不是一个复杂的计算,只需要大量的迭代即可。因此,它将继续评估该真实条件,最终导致CPU使用率增加的消耗。
您可能还想检查停止并着火
附带说明:
如果要避免无限循环,则只需使用即可WaitHandle
。要使该过程退出外部世界,请使用EventWaitHandle
带有唯一字符串的a。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句