Для чего нужны методы wait(), notify(), notifyAll()?​

Все методы используются в механизме многопоточности Java. Их действие во многом объясняется их дословным переводом.
Метод wait() вызывается нитью в синхронизированном блоке у объекта-монитора. В результате вызова нить,которая его осуществила становиться в режим ожидания и отпускает мютекс объекта-монитора. Снять с паузы её могут другие нити,зашедшие в синхронизированный блок и вызвавшие методы notify() или notifyAll() на объекте-мониторе. Есть ещё метод wait(long timeout) с таймаутом, который пробуждает нить по истечении времени,переданного в него,если до этого не были вызваны notify() или notifyAll().
Метод notify() вызывается у монитора и снимает с wait’а одну случайную нить. notifyAll() снимает с паузы все заснувшие нити.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *