Thread : creation threads by extending Thread class, and implementing Runnable interface

Java example


This class presents the different ways to implement threads : extending the Thread class, implementing the Runnable interface anonymously and using lambda expression.

Get the sources of the example from the following GitHub url : https://github.com/javaspringexamples/ThreadCreationExamples.git.

Or Download a .zip file : https://github.com/javaspringexamples/ThreadCreationExamples/archive/master.zip.

package javaspringexamples.ThreadExamples;

/**
 * This class presents how to implement a thread by extending the Thread class.
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class ThreadByExtension extends Thread {

	@Override
	public void run() {
		System.out.println("Running " + this.getClass());
	}
}
package javaspringexamples.ThreadExamples;

/**
 * This class presents how to implement a thread by implementing the Runnable
 * interface.
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class ThreadByImplementation implements Runnable {

	@Override
	public void run() {
		System.out.println("Running " + this.getClass().getName());
	}
}
package javaspringexamples.ThreadExamples;

/**
 * This class presents the different ways to implement threads.
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class TestThread {

	public static void main(String[] args) {

		// Thread by extending the Thread class.
		ThreadByExtension t1 = new ThreadByExtension();
		t1.start();

		// Thread by implementing the Runnable interface.
		Thread t2 = new Thread(new ThreadByImplementation());
		t2.start();

		// Thread by implementing the Runnable interface anonymously.
		Runnable r1 = new Runnable() {
			@Override
			public void run() {
				System.out.println("Running Anonymous object runnable.");
			}
		};
		Thread t3 = new Thread(r1);
		t3.start();

		// Thread by implementing the Runnable interface anonymously using
		// lambda expression.
		Runnable r2 = () -> System.out.println("Running runnable object using lambda expression Runnable.");
		Thread t4 = new Thread(r2);
		t4.start();
	}
}