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

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

Понравилась статья? Поделиться с друзьями:

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

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: