在一个名为a的线程中,我有2个循环,它们都必须在标志为false时停止。 财产以后这样的:在java中转换的替代方法
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)
{
}
});
}
让我们假设我们进入第一个循环,并在循环运行的变化,以虚假的中间,现在我们将移动到“Do_somthing ......”这可能需要几秒钟车道完成,然后我们将移到第二个循环。 与此同时,旗帜的价值可能再次变为真实!这意味着我将执行第二个循环,我不希望这样做。所以有可能做这样的事情:
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:
});
}
我现在写的代码当然不起作用,但它只是为了证明我的意愿。 我知道“休息”应该是解决方案,但我不能拿出解决方案。
不要'goto' :( – Maroun
如果你想打破/退出'run'方法就用'回报;!' – Pshemo
@Pshemo感谢张贴作为一个答案,我会接受它。 –