黑马程序员技术交流社区
标题:
测试题
[打印本页]
作者:
cxl1694095035
时间:
2016-5-17 12:23
标题:
测试题
/*第 5 题:分析以下程序运行结果,说明原理。(没有分析结果不得分)
* 分析
* java中thread的start()和run()的区别:
* 1.start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码:
* 通过调用Thread类的start()方法,启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,
* 这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程.
*
* 2.run()方法当作普通方法的方式调用,程序还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码:
* 而如果直接用Run方法,这只是调用一个方法而已,程序中依然只有主线程--这一个线程,其程序执行路径还是只有一条,这样就没有达到写线程的目的。
*/
public class Test5 {
public static void main(String[] args) {
MyThread t = new MyThread(); //创建Thread类的子类对象
t.run(); //调用run()方法
t.start(); //开启线程
System.out.println("A");
}
}
class MyThread extends Thread { //继承Thread
public void run() { //重写
try { //抓中断异常
Thread.sleep(3000); //控制当前线程休眠3秒,时间到了自动醒来
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("B");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2