Я немного запутался в использовании метода 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