what is the difference between sleep() and Wait()?
Answer Posted / sat
Thread.sleep() sends the current thread into the "Not
Runnable" state for some amount of time. The thread keeps
the monitors it has aquired -- i.e. if the thread is
currently in a synchronized block or method no other thread
can enter this block or method. If another thread calls
t.interrupt() it will wake up the sleeping thread.
Note that sleep is a static method, which means that it
always affects the current thread (the one that is executing
the sleep method). A common mistake is to call t.sleep()
where t is a different thread; even then, it is the current
thread that will sleep, not the t thread.
t.suspend() is deprecated. Using it is possible to halt a
thread other than the current thread. A suspended thread
keeps all its monitors and since this state is not
interruptable it is deadlock prone.
object.wait() sends the current thread into the "Not
Runnable" state, like sleep(), but with a twist. Wait is
called on a object, not a thread; we call this object the
"lock object." Before lock.wait() is called, the current
thread must synchronize on the lock object; wait() then
releases this lock, and adds the thread to the "wait list"
associated with the lock. Later, another thread can
synchronize on the same lock object and call lock.notify().
This wakes up the original, waiting thread. Basically,
wait()/notify() is like sleep()/interrupt(), only the active
thread does not need a direct pointer to the sleeping
thread, but only to the shared lock object.
| Is This Answer Correct ? | 1 Yes | 0 No |
Post New Answer View All Answers
What is string variable?
How many arguments can be passed to main ()?
Why can't you declare a class as protected?
What is the old name of java?
Are variables stored in ram?
How to instantiate static nested classes in java?
Is double bigger than float?
What are local variables?
how a programmer confirms that the data submitted has been succesfully inserted into the database(either oracle or my sql).. How a programmer confirm if there is any problem with the program he wrote for insertion... ANS:--- >executeupdate method is having boolean return type, if anything goes wrong in data insertion or data updation, it would return false. otherwise, if it successfully inserts data into the database, it would return true NOW HOW TO I CHECK IN MY DURING EXECUTION WHETHER IT RETURNS TRUE OR FALSE... WELL IT WILL DISPLAY ANY MESSAGE OR NOT
Why do we need wrapper class?
Can you create an object of an abstract class?
Name the components that are termed to be Heavy-weight component but available in Light-weight components?
Can an interface have a constructor?
When can we say that threads are not lightweight process in java?
What is mvc in java?