Я немного запутался в использовании метода yield()
в Java, в частности, в приведенном ниже примере кода. Я также прочитал, что yield() используется для предотвращения выполнения потока.
Мои вопросы:
-
Я считаю, что приведенный ниже код приводит к тому же выводу, как при использовании
yield()
, так и при его отсутствии. Правильно ли это? -
Каковы, по сути, основные виды использования
yield()
? -
Каким образом
yield()
отличается от методовjoin()
и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