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