aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes query related to wait(), notify() and notifyAll() methods 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 "query related to wait(), notify() and notifyAll() methods" Watch "query related to wait(), notify() and notifyAll() methods" New topic
Author

query related to wait(), notify() and notifyAll() methods

Kiran Bhangale
Greenhorn

Joined: Sep 01, 2005
Posts: 12
why the methods wait(), notify(), notifyAll() methods are provided in Object class?
As These methods are related to thread, why they are not specified as members of Thread class?

Regards,
Kiran Bhangale.
Alejandro Dominguez
Greenhorn

Joined: Jun 01, 2007
Posts: 28
The way I see it, is beacuse *any* object can be used as a mutex (sort of a traffic light to coordinate threads). Being methods of Objects guarantees that you can synchronize on any object you like.

Someone will probably post a more academic answer..

Regards

Alejandro


Alejandro<br /> <br />SCJP 5 (SAI)
Chandra Bhatt
Ranch Hand

Joined: Feb 28, 2007
Posts: 1707

why the methods wait(), notify(), notifyAll() methods are provided in Object class?
As These methods are related to thread, why they are not specified as members of Thread class?



#1: wait() method is used to take the lock on the object; Every class
extends from Object implicitly. There is nothing like waiting for thread;
Threads wait for object lock to acquire.

#2: You notify the object so that thread scheduler could pick one thread
from the waiting pool to grab the lock of the object just notified.



Note: Every object in Java has all three methods inherited from the
Object class.


Thanks,
[ June 05, 2007: Message edited by: Chandra Bhatt ]

cmbhatt
Kiran Bhangale
Greenhorn

Joined: Sep 01, 2005
Posts: 12
Thanks chandra!

But the synchronization/locking comes into picture if we create threads. right?

Regards,
Kiran Bhangale.
Chandra Bhatt
Ranch Hand

Joined: Feb 28, 2007
Posts: 1707

But the synchronization/locking comes into picture if we create threads. right?


Yeah, but again you take lock on the object or say make your code block
synchronized so that at a time only one thread could access it.

Remember we are talking about one object versus multiple threads.



You see in this code there is only one runnable object and three thread t1,
t2 and t3 that will work on the same runnable object "r".
At a time only one of the threads could acquire lock of "this" ("r" in
main).


Thanks,
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: query related to wait(), notify() and notifyAll() methods