title: How does one implement a truly asynchronous java thread
body: <p>I have a function that needs to perfom two operations, one which finishes fast and one which takes a long time to run. I want to be able to delegate the long running operation to a thread and I dont care when the thread finishes, but the threads needs to complete. I implemented this as shown below , but, my secondoperation never gets done as the function exits after the start() call. How I can ensure that the function returns but the second operation thread finishes its execution as well and is not dependent on the parent thread ?</p>
  
  <pre><code>public void someFunction(String data)
  {
     smallOperation()
     SecondOperation a = new SecondOperation();
     Thread th = new Thread(a);
     th.Start();
  }
  
  class SecondOperation implements Runnable
  {
    public void run(){
    // doSomething long running
   }
  } 
  </code></pre>