В чём отличие wait(100) от sleep(100)?​

Оба метода используются в механизме многопоточности в Java. wait(long ms) можно вызвать в синхронизированном блоке кода с целью поставить нить на паузу на время, переданное внутрь метода или же пока другая нить не дёрнет уснувшую методом notify или notifyAll. Главное в том что wait после вызова освобождает мютекс захваченного монитора и другая нить может выполнять освобождённый блок кода.
Метод sleep(long ms) отправляет нить в сон на переданное время, и нить будет на паузе отведённые миллисекунды, если не произойдёт исключительной ситуации. «Легальных» способов без исключений вырвать нить из sleep не предусмотрено. Вызванный в синхронизированном блоке метод sleep не обеспечивает освобождение мютекса.

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

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

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

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