why the sleep method does not leave the lock and wait method
leave the lock
Answers were Sorted based on User's Feedback
Answer / saurabh m. chande
for wait(), we ask that thread to wait for defined period of time. So, for that defined period of time, CPU just cant sit idle instead it prefers to run another thread which is looking for acquiring a lock by CPU. If wait() don't release the lock, considering the synchronization in mind, it will not serve any purpose but CPU will wait for the defined period being just idle. Then, there is no point of implementing Threads in our application.
sleep() : User is damn sure that he wants to run the thread in sleep mode. So if he uses wait() instead of sleep, then the thread -
1. will wait for defined period of time.
2. when the time is over, thread will go into runnable state and not in running state.
3. not sure when CPU will pick up this thread for further execution.
To avoid all the 3 reasons, sleep will not leave the lock on the thread. Instead it prefers to keep the lock on the thread even if it is in sleep mode. But it is sure that, once the sleep mode is over, it is having a lock and can directly put the thread in running state without further waiting.
- Saurabh M. Chande
Is This Answer Correct ? | 5 Yes | 0 No |
Answer / alan
Thats a very nice answer Saurabh.
makes my understanding clear about both sleep() and wait().
Which one is the best site to look for more java related
questions?
Is This Answer Correct ? | 0 Yes | 0 No |
every class has an object lock but when you used
synchronized block or synchronized method
means to say the when you use synchronized keyword then the
object lock come in an existence without you don't get the
lock on particular object you
must know that wait()
1) what is the purpose of when you call wait on the object
which lock you get when you use synchronized block or method
then particular thread immediate leave the
lock so means to say that wait must to use when you get the
lock on the particular object without
2)its your turns to think that there is any mendotary
to call Thread.sleep() method in synchronized block
so whe there is no relation b/t sleep and Monitor(i'm saying
lock on the object)
why youthink it like that why the sleep() doesn't leave the
lock and wait() leave the lock
3) ther is no realtion between object lock and sleep
amit singh
amitsing2008@gmail.com
Is This Answer Correct ? | 0 Yes | 2 No |
Answer / balamurugan
Wait Method have parameters as MilliSecond after that
particular time over thread start execution.So Wait Method
Leave the Lock.
But in Sleep() have no any parameter so the thread have no
clue to leave the lock . that's y sleep method does not
leave the lock the programmer need to explicitly write
another method like notify() to execute.
Is This Answer Correct ? | 0 Yes | 4 No |
ioc vs dependency injection?
Java prints out a ton of digits when I system.out.println() a double. How can I format it so it displays only 3 digits after the decimal place?
What is mq in java?
What are java’s rules regarding tabs, spaces and newline characters?
Which instutute is offering course for rhino jain slee
how can we create the ui using netbeans,having the code?
What is java ioc?
What about products that claim to block java applets at a firewall? : java security
What are the authentication modes in asp.net? : java security
What is meant by swing in java?
What is type inference? Is type inference available in older versions like java 7 and before 7 or it is available only in java se 8?
What happens when you omit a brace or misspell one of the words, like public or