yield() 的主要用途是什么,它与 join() 和 interrupt() 有何不同?
我对在Java中使用Thread.yield()
方法有点困惑,特别是在下面的示例代码中。我还读到 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