java 循环记忆和处理未完成的任务

java loop memory and disposal of outstanding tasks

假设我有一个方法是这样的:

public void doSomething() {
    doThingA();
    doThingB();
    doThingC();
    doSomething();
}

然后让我们将这些方法操作之一定义为如下所示:

public void doThingB() {
    if (x == 1) {
        startDifferentMethodLoop()
    }
}

假设 startDiffernetMethodLoop() 有单独的方法,例如 doThingE(),当然最后会再次调用 iteself。

问题:如果 doThingB() 在 x 等于 1 时变为活动状态,java 是否会在第一个循环中对未完成的方法进行排队(特别是 doThingCdoSomething并在一切都解决后尝试完成它们?如果是这样,告诉 Java 一旦 X 为真并调用新循环,未完成的方法不需要排队的首选方式是什么?

或者 Java 忘记了原始方法,因为它们从未被调用过?

你可以让你的方法 return 一个布尔值,意思是 "resolved",像这样:

// and similar for other methods
public boolean doThingB() {
    if (x == 1) {
        startDifferentMethodLoop();
        return true;
    } else {
        return false;
    }
}

public void doSomething() {
    if (doThingA()) return;
    if (doThingB()) return;
    if (doThingC()) return;
    doSomething();
}