wood burning stoves 2.0*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Question on sleep() method from dan's Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Question on sleep() method from dan Watch "Question on sleep() method from dan New topic
Author

Question on sleep() method from dan's

aishwarya mathur
Greenhorn

Joined: Sep 03, 2004
Posts: 22
Please have a look at the below code:


I thought as sleep() is a static method,it should always be invoked as Thread.sleep(),also I considered the syntax for sleep() above code results in compiler error... But it isn't it...why? Please put some light into it.
Sandeep Jindal
Ranch Hand

Joined: Aug 25, 2003
Posts: 180
Hi Aishwarya,

The sleep method is static method of Thread class. Thats very true.
But who says that static method can only be called using ClassName.staticMethod()

You can always call static method from the instance. So you code:
sleep(500) is something like this.sleep(500);

which is very well justified.

Hope this clears.

Regards,
Sandeep Jindal
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

As a static method, it's good coding practice to call sleep() from the parent class Thread, but this is not required.

EXAM TIP: Note that sleep always executes on the currently running Thread. So when sleep() is called using a specific instance of Thread, it can be misleading. For example, if you have two Threads, t1 and t2, and within t1 is the statement, t2.sleep(), then it might appear that t2 is being put to sleep. But actually, the current Thread (t1) is put to sleep -- it just happened to call the static sleep() method from another instance.
[ September 16, 2004: Message edited by: marc weber ]

"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
sscce.org
Sandeep Jindal
Ranch Hand

Joined: Aug 25, 2003
Posts: 180
Hi Marc,

Thats nice explaination. Thats clears my boubt that why my IDEs give warnings when i used call a static method from an instance variable, here is the catch.

Regrads
Sandeep Jindal
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Question on sleep() method from dan's
 
Similar Threads
override sleep method
Hi rahul, please help me!!!!!
Marcus problem
daemon thread misbehaving
thread calling sleep but not blocking