Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

question of threads from Dan's mock

 
Ana Abrantes
Ranch Hand
Posts: 43
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is a question on Dan's new mock:

As a result, it prints "A".
But I can't figure out why!
If I don't have the class MyThread and used Thread instead, the result would be "B".
Does the run() method of a subclass of Thread have priority over the run() of the runnable passed as target to it?
Ana
 
Sachin Tendulkar
Greenhorn
Posts: 27
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the example given the run method is being over-ridden. The original run method in Thread calls the run method of the Runnable interface if the thread is passed a Runnable object.
In this case the over-riding method changes the behaviour of the run method. It simply prints "A" and never calls the run method of the Runnable interface.
As a result at run time the over-ridden run method is called and prints A.
 
Marlene Miller
Ranch Hand
Posts: 1392
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here is the run method of the Thread class.

If this method is overridden, target.run() will not be invoked. The run() method of the Runnable object will not be executed.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic