#include <stdio.h>
int main() {
while(!DONE) {
/* check for stuff */
}
return 0;
}
以上代码示例会一直占用100%的CPU,直到DONE为真。我该如何实现一个程序循环,只有在DONE时终止,但不会使用100%的CPU?现代语言使用类似于App.ProcessMessages之类的东西将控制权交给操作系统,并返回到循环中。
我是C语言新手... 使用最新的GCC,Linux和Windows(可移植解决方案最好)。
DONE
是什么,什么会导致它变为非零值?大概一直处理到“检查东西”的评估出现将DONE设置为非零的情况才有意义吧? - CB Baileygetchar()
这样的阻塞调用,则线程和同步对象会更加复杂。 - CB Bailey