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
|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
|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|
Which is the Best institute to do academic Project in Java? Need information about institutes at Ameerpet, Hyderabad.
What is java api?
What is dto layer in java?
What is flatmap in java8?
How do I open the java console in windows 10?
differences between iterator and spliterator in java se 8?
What are the differences between java’s old java date api and java 8’s date and time api?
Where is java installed?
Do I need both jdk and jre?
How do you check if java is installed on windows command prompt?
I get an exception if I remove the static modifier from main?