Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Mar 19, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

A Runnable Is Not a Thread

You may come across some situations where implementing a Runnable may have some advantages over extending Thread. If the class you are going to multi-thread is already extending another class, you have to implement the java.lang.Runnable interface, which is obvious. What may not be obvious is that a Runnable is not a thread. A Runnable is a class like any other class in Java. For a Runnable to become a Thread, you have to feed your Runnable to an actual java.lang.Thread object.
public class ARunnable implements Runnable 
. . . 
public void run() 
/* the code to run threaded goes here */ 
Then you do:
Runnable myRunnable = new ARunnable(); 
Thread myThread = new Thread (myRunnable); 
Your code in the run() method of the Runnable will run threaded, but since a Runnable is not a thread, you can run the Runnable in a non-multi-threaded mode by explicitly calling its run method. This is a handy way for tracing the logic of the code in your Runnable before running it multi-threaded.
Behrouz Fallahi
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date