The run method is a simple method with no arguments, why should it have a special reference to it's running Thread? You can always get one via Thread.currentThread() if you wanted one.
posted 6 years ago
I think Ragi is asking about the thread that called start(). There is no good reason to have this reference. There is no caller-callee relationship between threads. Not even a parent-child relationship like between the OS processed. One thread starts another and then may do whatever it pleases, including exiting. Having that reference would mean that if that thread exited, it could not be garbage collected until the other thread exits and gets garbage-collected too.
If you want, you can always add this manually by giving it as the argument to your thread constructor and remember it in the thread (subclass) object.