在名为 a 的线程中,我有 2 个循环,当标志为 false 时,它们都必须停止。 类似这样的事情:
boolean flag = true;
t1 = new Thread(new Runnable()
{
@Override
public void run()
{
while(flag && another_condition)
{
}
Do_something_that_takes_time
while(flag && another_condition)
{
}
});
}
假设我们进入了第一个循环,并且在循环运行的中间更改为 false,现在我们将移动到“Do_somthing...” channel ,这可能需要几秒钟才能完成,然后我们将移动到第二个循环。 与此同时,flag 的值可能会再次更改为 true!这意味着我将执行第二个循环,但我不希望这样做。那么是否可以做这样的事情:
boolean flag = true;
t1 = new Thread(new Runnable()
{
@Override
public void run()
{
while(another_condition)
{
goto end;
}
Do_something_that_takes_time
while(flag && another_condition)
{
goto end;
}
end:
});
}
我现在写的代码当然不起作用,但这只是为了证明我的意愿。 我知道“break”应该是解决方案,但我无法通过使用它来找到解决方案。
最佳答案
如果您的目标是从 run
方法中中断/退出,那么您只需使用 return;
。
关于java - java 中 goto 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22174694/