【发布时间】:2015-07-01 02:05:54
【问题描述】:
这是一个多线程的HelloWorld:
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 Doc,上面写着
Thread.yield():使当前正在执行的线程对象 暂时暂停并允许其他线程执行
但是在代码中,我看不清楚currently excuting thread是什么,看起来两个线程同时运行。
说myThread.yield()而不是Thread.yield()不是更清楚吗?有人对此有想法吗?
【问题讨论】:
-
在您的上下文中,
Thread.yield将产生运行main的“主”线程
标签: java multithreading concurrency