title: java loop memory and disposal of outstanding tasks
body: <p>Suppose I had a method that went something like this:</p>
  
  <pre><code>public void doSomething() {
      doThingA();
      doThingB();
      doThingC();
      doSomething();
  }
  </code></pre>
  
  <p>And then let's define one of these methods actions as something like this:</p>
  
  <pre><code>public void doThingB() {
      if (x == 1) {
          startDifferentMethodLoop()
      }
  }
  </code></pre>
  
  <p>And let's say the <code>startDiffernetMethodLoop()</code> has separate methods like <code>doThingE()</code> and of course ends by calling iteself  again.</p>
  
  <p>The question: if <code>doThingB()</code> becomes active when x is equal to 1, will java queue the oustanding methods in the first loop (specifically <code>doThingC</code> and <code>doSomething</code> and try to accomplish them once everything is resolved? If so, what would be the preferred way of telling Java that once X is true, and the new loop is called, the outstanding methods do not need to be queued?</p>
  
  <p>Or does Java forget about the original methods because they were never called?</p>