我对在 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
原文由 divz 发布,翻译遵循 CC BY-SA 4.0 许可协议
资料来源: http ://www.javamex.com/tutorials/threads/yield.shtml