It will create a new thread of execution when you call start(). Exactly what that means is entirely up to the implementation, but there's no reason to think it will behave any differently for a subclass of Thread than for Thread itself.
However, you should rarely, if ever, have a good reason to subclass Thread. Why are you doing it here?
And even if you do subclass Thread, there should rarely, if ever, be a good reason for overriding its run() method.
Joined: Aug 29, 2006
Thanks a lot!! for the explanation. This was just an experimental to understand JVM behavior. I completely agree with you, it would be a rarest use-case where sub thread will not override run().