These are very common questions that a beginner Java developer may ask while learning Multi-threading in Java programming.
What are the ways in which one can create a Java Thread ?Answer : There are two ways. 1 : Using Thread class, 2 : Using Runnable Interface.
What is the difference between Thread and Runnable ?Answer : Thread is a class from java.lang.Thread package , where as Runnable is an interface from java.lang.Runtime package.
Should use Thread Class or Runnable interface and Why?Answer : It depends, but as much as possible we must make use of Runnable interface, We must try to extend a class only when we want to override some behavior. When we extend a class, the two classes are very tightly coupled to each other.
Example: Thread Class: hreadClassExample.javapackage com.code2care.examples;
public class ThreadClassExample extends Thread {
Thread thread;
ThreadClassExample() {
thread = new Thread(this);
System.out.println(thread + " : Started!");
thread.start();
}
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("Thread : " + thread.getName() + " " + i);
}
}
}
File: ThreadClient.java
package com.code2care.examples;
public class ThreadClient {
public static void main(String[] args) {
new ThreadClassExample();
}
}
Example: Runnable Interface: RunnableExample.java
package com.code2care.examples;
public class RunnableExample implements Runnable {
Thread thread;
RunnableExample() {
thread = new Thread(this);
thread.start();
}
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("Thread : " + thread.getName() + " " + i);
}
}
}
ThreadClient.java
package com.code2care.examples;
public class ThreadClient {
public static void main(String[] args) {
new ThreadClassExample();
}
}
This is not an AI-generated article but is demonstrated by a human.
Please support independent contributors like Code2care by donating a coffee.
Buy me a coffee!

Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!