/** * */ public class TwoThread extends Thread { private Thread creatorThread; public TwoThread(){ creatorThread = Thread.currentThread(); } public void run(){ for(int i=0; i<5; i++){ printMsg(); } } public void printMsg(){ Thread t = Thread.currentThread(); if(t==creatorThread){ System.out.println("Creator thread"); } else if(t==this){ System.out.println("New thread"); } } /** * @param args */ public static void main(String[] args) { TwoThread tt = new TwoThread(); tt.start(); for(int i=0; i<10; i++){ tt.printMsg(); } } }
大家好,该程序在调用tt.start()方法时为什么没有直接去调用run()方法,而是执行完for循环后才调用的run()方法?