Встречается на собеседованиях • сегодня

Что такое yield у Thread

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

Особенности:

  • Не гарантирует, что планировщик потоков выберет другой поток.
  • Не освобождает мониторы или блокировки.
  • Используется для улучшения кооперативной многозадачности.

Пример:

java
Thread thread1 = new Thread(() -> {
    for (int i = 0; i < 5; i++) {
        System.out.println("Thread 1: " + i);
        Thread.yield(); // Уступает выполнение
    }
});

Thread thread2 = new Thread(() -> {
    for (int i = 0; i < 5; i++) {
        System.out.println("Thread 2: " + i);
    }
});

thread1.start();
thread2.start();

Вывод может варьироваться, так как yield() лишь подсказывает планировщику, но не гарантирует порядок выполнения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы