If you make the call super, as you did, you will end up calling the following constructor according to the JavaDoc:
public Thread (string name)
Selects a new Thread object. This constructor has the same effect as Thread (null, null, name) .
So super(ThreadName) calls super(null, null, ThreadName) .
If you delete your call to super(ThreadName) , then the JVM will automatically call the empty super() constructor for you. According to the JavaDoc, you will get an almost identical call:
Thread Public Thread () Selects a new Thread object. This constructor has the same effect as
Thread (null, null, gname) , where gname is the new generated name. Automatically generated names are of the form "Thread -" + n, where n is an integer.
So super() calls super(null, null, gname) , where gname is the automatically generated name for Thread.
The only difference in behavior between a call and not a call to super () is the assignment of a name to Thread.
source share