There are principally two ways to create worker threads--by extending the java.lang.Thread class and by implementing the java.lang.Runnable interface. While extending the java.lang.Thread class, we are not required to implement anything:
class MyThread extends Thread {
}
Our MyThread class inherits the name property with an automatically generated value and the start() method. We can run this method and check the name:
System.out.print("demo_thread_01(): ");
MyThread t1 = new MyThread();
t1.start();
System.out.println("Thread name=" + t1.getName());
If we run this code, the result will be as follows:
As you can see, the generated name is Thread-0. If we created another thread in the same Java process, the name would be Thread-1 and so on. The start() method does nothing. The source code shows that it calls the run() method if such a method is implemented...