13. Чем отличаются методы yield() и sleep()?

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().

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page