我Thread.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
来源:http : //www.javamex.com/tutorials/threads/yield.shtml