13. Чем отличаются методы yield() и sleep()?
UNKNOWNВ то время как yield () может сделать только эвристическую попытку (зависит от платформы и планировщика) приостановить выполнение текущего потока без гарантии того, когда он будет запланирован назад, sleep () может заставить планировщик приостановить выполнение текущего потока как минимум на указанный период времени в качестве его параметра.
public class ThreadYield {
public static void main(String[]args) {
Runnable r = () -> {
int counter = 0;
while (counter < 2) {
System.out.println(Thread.currentThread().getName());
counter++;
Thread.yield();
}
};
new Thread(r).start();
new Thread(r).start();
}
}
Прогон 1:
Thread-0
Thread-1
Thread-1
Thread-0
Прогон 2:
Thread-0
Thread-0
Thread-1
Thread-1
Предыдущий вопрос: 12. Как работает Thread.join()? Для чего он нужен?
Следующий вопрос: 14. Как правильно остановить поток? Для чего нужны методы .stop(), .interrupt(), .interrupted(), .isInterrupted().
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: напишите мне