Метод wait(long timeout, int nanos) класса Object в Java
Метод Object wait(long timeout, int nanos) переводит текущий поток в состояние ожидания (блокировки) до тех пор, пока другой поток не вызовет метод notify() или notifyAll() данного объекта, либо пока не будет превышен период ожидания, заданный параметрами timeout и nanos.
Этот метод аналогичен методуwait(long timeout), но имеет дополнительный параметр nanos, который представляет дополнительное время (в наносекундах, диапазон 0-999999). Поэтому к периоду ожидания также нужно добавить nanos наносекунд.
Если оба параметра timeout и nanos равны 0, тайм-аута нет, и ожидание будет продолжаться бесконечно, подобно методуwait()。
Текущий поток должен быть владельцем монитора этого объекта, иначе всё равно возникнетIllegalMonitorStateExceptionисключение.
Если текущий поток будет прерван любым потоком до или во время ожидания, будет выброшеноInterruptedExceptionисключение.
Если переданные параметры недействительны или nanos не находится в диапазоне 0-999999, будет выброшеноIllegalArgumentExceptionисключение.
Синтаксис
public final void wait(long timeout, int nanos)
Parameters
timeout- Время ожидания (в миллисекундах).
nanos- Дополнительное время ожидания (в наносекундах).
Возвращаемое значение
Нет возвращаемого значения.
Пример
В следующем примере демонстрируется использование метода wait(long timeout, int nanos):
Пример
Результат выполнения вышеуказанной программы:
List is empty... List is empty... Opening... New Element:'Hello!' notifyAll called! Closing... Waiting... Waiting... List is empty... Hello! Interrupted Exception!
Другие расширения
Класс Object в Java