There are different ways of how to start a Thread in Java.
Example 1 – Extending the Thread class:
package threadTests;
class ThreadTest1Runner extends Thread
{
public void run()
{
for(int i = 1; i <= 5; i++)
{
System.out.println("Hello " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class ThreadTest1
{
public static void main(String[] args)
{
System.out.println("Main Thread Started...");
ThreadTest1Runner t1 = new ThreadTest1Runner();
t1.start();
ThreadTest1Runner t2 = new ThreadTest1Runner();
t2.start();
System.out.println("Main Thread Ended...");
}
}
Output:
Main Thread Started...
Hello 1
Main Thread Ended...
Hello 1
Hello 2
Hello 2
Hello 3
Hello 3
Hello 4
Hello 4
Hello 5
Hello 5
Example 2 – Implementing the Runnable interface:
package threadTests;
class ThreadTest2Runner implements Runnable
{
public void run()
{
for(int i = 1; i <= 5; i++)
{
System.out.println("Hello " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class ThreadTest2
{
public static void main(String[] args)
{
System.out.println("Main Thread Started...");
Thread t1 = new Thread(new ThreadTest2Runner());
Thread t2 = new Thread(new ThreadTest2Runner());
t1.start();
t2.start();
System.out.println("Main Thread Ended...");
}
}
Output:
Main Thread Started...
Hello 1
Main Thread Ended...
Hello 1
Hello 2
Hello 2
Hello 3
Hello 3
Hello 4
Hello 4
Hello 5
Hello 5
Example 3 – Implementing the Runnable interface (fastway):
package threadTests;
public class ThreadTest3
{
public static void main(String[] args)
{
System.out.println("Main Thread Started...");
Thread t1 = new Thread(new Runnable()
{
public void run() {
for(int i = 1; i <= 5; i++)
{
System.out.println("Hello " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t1.start();
System.out.println("Main Thread Ended...");
}
}
Output:
Main Thread Started...
Main Thread Ended...
Hello 1
Hello 2
Hello 3
Hello 4
Hello 5
Last Comments