tuc*_*uck 1 c operating-system
有点傻控制流程问题:
基本上我有类似以下的东西,
switch(r){
case(0):
while (x != TRUE) {
yield();
break;
}
do_important_work();
break;
}
Run Code Online (Sandbox Code Playgroud)
如果满足条件(即如果x!= TRUE)我希望这个线程只是屈服,并在代码中的这个位置停止执行(即我做一个内核级上下文切换),并允许其他一些进程运行,以后再试一次.问题是while循环内部的中断只是打破了while循环,而不是整个switch语句.我真正想要的是执行产量,然后突破并允许另一个上下文切换发生.
这有意义吗?这是迟到的方式,我不能为我的生活找到解决方案.
任何帮助将不胜感激.
那种结构看起来很痛苦.你会立刻打破,所以它实际上并没有循环.在这种情况下,您可以使用if,如下所示:
if (!x)
{
yield();
}
else
{
do_important_work();
}
break;
Run Code Online (Sandbox Code Playgroud)