黑马程序员技术交流社区
标题:
分析下面题目,这个是点招题
[打印本页]
作者:
我类个去
时间:
2016-5-27 10:36
标题:
分析下面题目,这个是点招题
分析以下程序运行结果,说明原理。(没有分析结果不得分)
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");
}
}
求大神解惑!!
作者:
yuanqingleivip
时间:
2016-5-27 11:03
刚刚运行了下,结果虽然出来了,我也不懂,等大神解答。
作者:
zhoubinjian
时间:
2016-5-27 11:42
首先主函数实例了MyThread类,
然后调用了它的run方法,这里调用run跟普通方法没有什么区别,此时主进程就执行到了run方法,然后run方法又调
用sleep方法等待3秒,所以程序运行后等待3秒输出第一个字母:B,然后回到主线程,主线程继续往下执行调用线程的start方法
,start后此时就产生了两个线程了,一个在执行run方法,一个在执行主线程,
执行run方法的执行到调用sleep方法时会等待3秒,而main方法的主线程不用等待,cpu被主线
程中的System.out打印语句抢占.所以先随后打印出第二个字母:A,然后子线程等待3秒后在输出B,因此输出是BAB。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2