这里是一个多线程的HelloWorld:受Thread.yield()影响的线程?
public class HelloWorld {
public static void main(String[] args) throws InterruptedException {
Thread myThread = new Thread() {
public void run() {
System.out.println("Hello World from new thread");
}
};
myThread.start();
Thread.yield();
System.out.println("Hello from main thread");
myThread.join();
}
}
据我了解,在myThread.start()
后,会出现运行两个线程。一个是主线程,另一个是新创建的myThread
。那么,哪个线程在Thread.yield()
中被引用?
我查了Java SE6文件,它说
Thread.yield():使当前执行的线程对象 暂时暂停并允许其它线程执行
但在代码,我无法清楚地看到currently excuting thread
是什么,看起来两个线程都在同一时间运行。
难道说myThread.yield()
而不是Thread.yield()
更清楚吗?有没有人有关于此的想法?
在你的情况下,'Thread.yield'将产生 “主” 线程在'main'运行 – MadProgrammer
另见: http://stackoverflow.com/questions/ 1600572/are-thread-sleep0-and-thread-yield-statements-equivalent- –