Java Object wait(long timeout, int nanos) Method
The Object wait(long timeout, int nanos) method puts the current thread into a waiting (blocked) state until another thread calls the notify() method or notifyAll() method of this object, or until the timeout period set by the timeout and nanos parameters is exceeded.
This method is similar to thewait(long timeout) methodbut has an additional nanos parameter, which represents extra time (in nanoseconds, range 0-999999). So the timeout period also needs to add nanos nanoseconds.
If both the timeout and nanos parameters are 0, there is no timeout and it will wait indefinitely, similar to thewait() method。
The current thread must be the monitor owner of this object, otherwise anIllegalMonitorStateExceptionexception will still occur.
If the current thread is interrupted by any thread before or while waiting, it will throw anInterruptedExceptionexception.
If the parameters passed are invalid or nanos is not in the range 0-999999, it will throw anIllegalArgumentExceptionexception.
Syntax
public final void wait(long timeout, int nanos)
Parameters
timeout- The waiting time (in milliseconds).
nanos- The additional waiting time (in nanoseconds).
Return Value
No return value.
Example
The following example demonstrates the use of the wait(long timeout, int nanos) method:
Example
The execution result of the above program is:
List is empty... List is empty... Opening... New Element:'Hello!' notifyAll called! Closing... Waiting... Waiting... List is empty... Hello! Interrupted Exception!
Other Extensions
Java Object Class