8、 分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
* 答:1.t.run() 是调用MyThread里的方法run() 这时主线程休眠3秒后打印B
* 用run()方法实际上没有达到多线程的目的,t.run()只是普通的调用Thread里的方法而已
* 线程实际还是只有主线程一个,会按照代码顺序执行。所以启动线程一定要用t.start();
2.t.start() 是启动线程MyThread, 并执行方法run() 这时线程t休眠3秒后打印B
3.在2执行的时候同时执行System.out.println("A"); 打印A, 因为第2步要休眠3秒,所以先打印出A
这道题很好 可以让你去理解run()方法和start的区别 而不是单纯的知道启动线程是使用start 大家有空可以看看 |
|