Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

doubt on thread

 
debasmita pattnayak
Ranch Hand
Posts: 94
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi ranchers,
below is the code which i ma unable to understand;



please explain the same...
this is not printing anything though its compiling and running fine
 
khushhal yadav
Ranch Hand
Posts: 242
Java Mac Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi debasmita pattnayak

When you are doing this

TSamp ts = new TSamp(this);
ts.start();


You are invoking the run method of class Thread..
which by its implementation does nothing..

It's because though, you are using constructor of class TStamp
which takes a Runnable object as argument..
But that invokes the Thread() constructer of class Thread..
which is not taking that Runnable object as argument..
and calling it's own implemented run() method
So you are not getting anything on the console..

If you want the run() method of class Multi to be executed..
add this code to your class TStamp

TSamp(Runnable r){
super(r);
}
This way you will be invoking the Thread(Runnable r) constructer of class
Thread.. And hence the run() method of Runnable object will be executed..

Hoping you have got something..

Regards..
 
Manfred Klug
Ranch Hand
Posts: 377
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by khushhal yadav:
You are invoking the run method of class Thread.. which by its implementation does nothing..

That is not correct. The run method of the Thread class looks whether there is a Runnable-Object, and if yes the run method of the runnable is called. As result, something like this is possible.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic