new Thread();

Next question?
----
How to create threaded behaviors in Java?

Answer 1: Extend Thread (this is rarely used):
	class My''''''Thread extends Thread {
		public void run() { 
		// ... 
	}
	}

	(new My''''''Thread()).start();

Answer 2: Implement Runnable:
	class My''''''Runnable implements Runnable {
	public void run() { 
		// ... 
	}
	}

	(new Thread(new My''''''Runnable())).start();
----
The second method should be preferred in almost all situations. Only subclass Thread if you intend to change its behaviour, implement Runnable to provide a run() method for the standard thread class. 

Why? Both approaches work equally well.

''Runnable is more reusable than Thread. A Runnable interface just tells that a piece of code can be 'run'. So it may be reused, for example, as the result of an action performed on a menu item, a combo box and in a separate timer-invoked thread. If you extend Thread, it will be useful only in that context -- VhIndukumar''

I don't understand.  Why is Runnable more reusable than Thread?  Specializations of Thread can be reused in those contexts as easily as implementations of Runnable.

''Runnable is an interface.  Thread is a class.  If you want a runnable ComboBox, you can get just that.  But you cannot inherit from Thread and ComboBox.'''

But you don't need a runnable ComboBox for any of the situations listed above.  In fact, I've been programming in Java for 7 years and I've never needed a runnable ComboBox.

I've only heard one convincing reason to use Runnable -- for integration with a threading library like DougLea's util.concurrent. See http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html for more information.
----
It is also recommendable to name your threads. E.g.:
	new Thread(someRunnable, "someRunnable").start();
----
It's worth pointing out that you can easily make threads to run arbitrary methods using inner classes.

	final Some''''''Class target=someObject;
	(new Thread() { public void run() { target.someMethod(); }).start();

This probably qualifies as reaching too deep into the bag of tricks. ''Bah. Perhaps create the thread in a separate statement from starting it, with an eye to the LawOfDemeter, but otherwise the intent is clear & straightforward. It's as close as you can get to createThread(functionPtr) as you're going to get in Java.''
----
see HowTo