MyThread t = new MyThread(); //创建子线程对象
t.run();//这个时候子线程并没有启动,还是在主线程中执行t对象的run方法,在run方法中有Thread.sleep(3000) 是主线程休眠了3秒,然后打印b。然后继续执行主线程的下个语句(t.start())。
t.start();// 子线程启动,并开始执行run方法,这时候Thread.sleep(),子线程休眠,然后主线程就抢到cpu,然后执行主线程的下个语句,打印a,打印完后,主线程结束。当子线程休眠结束,就开始继续执行run方法中没有执行完的语句打印b。