Java面试题
目录
Thread类中的start()方法与run()方法的区别。
请描述创建线程的两种方式
调用线程对象的start()方法来启动线程。
Thread类中的start()方法与run()方法的区别。
线程对象调用run()方法不开启线程,仅是对象调用方法。线程对象调用start()方法开启线程,并让jvm调用run()方法在开启线程中执行。
请描述创建线程的两种方式
第一种方式声明一个类实现Runnable接口
-
定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为线程执行体。
-
创建Thread子类的实例,即创建了线程对象
调用线程对象的start()方法来启动线程。
第二种方式是声明一个类实现Runnable 接口。
-
定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。
创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,Thread对象才是真正的线程对象。
调用线程对象的start()方法来启动线程。