title: Java Class with multiple methods that can be executed in a thread
body: <p>I am new to Java multithreaded programming. I have a use case where I have a runnable class called <code>Diner</code> and based on the state of different variables in the program, I want to execute different methods of the <code>Diner</code> Class in parallel.
  One way to do that would be to have a single run() method containing multiple if conditions corresponding to different code blocks you want to execute as shown below. </p>
  
  <pre><code>    public class Diner implements Runnable  {
          Order order;
          int arrivalTime;
  
  
  
          public void run () {
              if(!isSeated){
                  //do something to get a seat
              }
              if(!notEatenYet){
                  //place order
              }
              if(!orderHasArrived){
                  //start eating
              }
              if(finishedEating){
                  //pay bill and leave
              }
          }
      }
  </code></pre>
  
  <p>However, is there a more elegant way to do this? Like rather than having a single <code>run()</code> method that can be parallelized, have different methods in the class that could be parallelized (overloading <code>run()</code> ?).</p>
  
  <p>I believe I can use Akka Actors to accomplish something like this, but I am looking for a native solution.</p>