我以前见过Sleep(0)
在我的代码的某些部分,一些无限/长while
循环可用。我被告知这将使时间片可用于其他等待进程。这是真的?有没有什么意义Sleep(0)
?
根据 MSDN 的文档Sleep http://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx:
零值会导致线程
放弃剩余的时间
切片到任何其他线程
准备运行。如果没有其他
线程准备运行,函数
立即返回,并且线程
继续执行。
需要认识到的重要一点是,是的,这为其他线程提供了运行的机会,但如果没有准备好运行的线程,那么您的线程将继续运行 - 使 CPU 使用率保持在 100%,因为某物将永远运行。如果您的 while 循环只是在等待某些条件时旋转,您可能需要考虑使用同步原语(例如事件)来休眠直到满足条件或休眠一小段时间以防止 CPU 资源耗尽。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)