這裏是一個多線程的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- –