黑马程序员技术交流社区

标题: 测试题 [打印本页]

作者: 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