JavaRush /Курсы /Java Core /yield — пропуск хода

yield — пропуск хода

Java Core
7 уровень , 7 лекция
Открыта

— Привет, Амиго! У нас сегодня будет небольшой и интересный урок. Я расскажу тебе про yield – статический метод класса Thread.

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

— А зачем нити может понадобиться уступить свое время другой нити?

— Необходимость в этом возникает не часто. Вызов yield приводит к тому, что «наша нить досрочно завершает ход», и что следующая за yield команда начнется с полного кванта времени. Значит шансы, что ее прервут – меньше. Особенно, если она небольшая (по времени). Такой подход можно использовать при оптимизации некоторых процессов.

Еще могу добавить, что метод Thread.sleep(0) работает фактически так же. Думаю, ты вначале будешь использовать метод yield не очень часто, но знать о нем — полезно.

Комментарии (139)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
27 февраля 2026
И снова больше полу года ни одного комментария(
Anonymous #3585174 Уровень 33
27 августа 2025
Like
XxelTaerg Уровень 30
5 августа 2025
ping
30 мая 2025
А сколько людей сейчас, которые +- двигаются со мной в прохождении?
Zim4ik Уровень 51
12 июня 2025
Есть ) начал в апреле.
12 июня 2025
🤜🤛
Vyacheslav Уровень 30 Expert
14 мая 2025
Чем дальше тем реже комментарии
DeepFryer Уровень 36
1 июля 2025
Даже грустно как-то хд I'm alone(
Lacer Уровень 30
17 апреля 2025
Есть кто живой?
Олег Сычев Уровень 15
12 мая 2025
есть)))
30 мая 2025
Ау! Здесь кто-нибудь есть?)
Vulki Уровень 53
25 сентября 2025
+
{Java_Shark} Уровень 36
30 октября 2024
++
Денис Кокшаров Уровень 1
5 марта 2025
++Java_Shark
Philipp Vasichev Уровень 28
11 октября 2024
🤫
Cвят Уровень 29
16 июня 2024
Представим пример с кабинками голосования и мьютексом, вот стоит 10 человек и 5 кабинок для голосования, тогда каждый человек это поток который заходит в объект блокирует мьютекс и выполняет код метода объекта: достает листок заполняет и засовывает в урну Ситуация с Thread.yield(): 1. Человек 1 заходит в очередь для голосования, но понимает что он старый дед и его код метода слишком длинный 2. Человек 1 решает временно уступить своё место для увеличения производительности очереди (вызывает Thread.yield()) 3. Человек 2, который тоже стоит в очереди, видит, что Человек 1 уступил место, и заходит в кабину для голосования. Польза: Дед не тормозит работу голосования иногда забегая делая часть кода и снова уступая. при этом он продолжает с того же места где закончил. При этом yield не нужен если все потоки делают одну задачу с одинаковым временем и приоритетом)
Абзал Уровень 38
20 июля 2024
Классный пример =)
Wren Уровень 29
27 августа 2024
О, хороший пример. Спасибо.
SomeBody098 Уровень 51
15 июня 2024
спидран по лекции