title: A single-shot background thread, avoiding join?
body: <p>Simple question, is this code valid, and will not leave a resource leak of any kind:</p>
  
  <pre><code>    // code...
      final int delaySecs = 60;
      new Thread(new Runnable() {
          @Override
          public void run() {
              try {
                  Thread.sleep(delaySecs * 1000);
                  // code to do whatever delayed single-shot action
              } catch (InterruptedException ex) { /* skip action */ }
          }
      }).start();
      // more code...
  </code></pre>
  
  <p>If it is not valid, should I use a <code>Thread</code> subclass like this to enable <code>setDaemon(true)</code> call:</p>
  
  <pre><code>class DaemonThread extends Thread {
      public DaemonThread(Runnable target) {
          super(target);
          setDaemon(true);
      }
  }
  </code></pre>
  
  <p>Or something else?</p>