Меня немного смущает использование метода yield ()
в Java, особенно в примере кода ниже. Я также читал, что yield () «используется для предотвращения выполнения потока».
У меня следующие вопросы:
Я считаю, что приведенный ниже код дает один и тот же результат при использовании yield ()
и когда им не пользуются. Это правильно?
Каковы, на самом деле, основные области использования yield ()
?
Чем yield ()
отличается от соединения ()
и interrupt ()
методы?
Пример кода:
public class MyRunnable implements Runnable {
public static void main(String[] args) {
Thread t = new Thread(new MyRunnable());
t.start();
for(int i=0; i<5; i++) {
System.out.println("Inside main");
}
}
public void run() {
for(int i=0; i<5; i++) {
System.out.println("Inside run");
Thread.yield();
}
}
}
Я получаю тот же результат, используя приведенный выше код, как с использованием, так и без использования yield ()
:
Inside main
Inside main
Inside main
Inside main
Inside main
Inside run
Inside run
Inside run
Inside run
Inside run