Найти в Дзене
DEBAGanov

Java 200. В чем разница между Thread.sleep() и Thread.yield()?

Метод Thread.sleep() заставляет текущий поток "уснуть" на указанное количество миллисекунд. Во время этого состояния поток не будет выполняться. Метод Thread.yield() сообщает планировщику потоков, что поток готов освободить процессор и переключиться на другой поток с более высоким приоритетом или на тот же самый поток. Однако, планировщик может проигнорировать этот вызов, если другие потоки не готовы к выполнению. Таким образом, Thread.sleep() заставляет текущий поток безусловно перейти в заблокированное состояние на заданный период времени, а Thread.yield() позволяет потоку объявить, что он готов поделиться ресурсами процессора с другими потоками, но не обязательно переключается на другой поток. 1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions Tелеграмм канал: https://t.me/DEBAGanov Мое резюме: https://github.com/DEBAGanov

Метод Thread.sleep() заставляет текущий поток "уснуть" на указанное количество миллисекунд. Во время этого состояния поток не будет выполняться.

Метод Thread.yield() сообщает планировщику потоков, что поток готов освободить процессор и переключиться на другой поток с более высоким приоритетом или на тот же самый поток. Однако, планировщик может проигнорировать этот вызов, если другие потоки не готовы к выполнению.

Таким образом, Thread.sleep() заставляет текущий поток безусловно перейти в заблокированное состояние на заданный период времени, а Thread.yield() позволяет потоку объявить, что он готов поделиться ресурсами процессора с другими потоками, но не обязательно переключается на другой поток.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov