A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiayoutianxia 中级黑马   /  2014-9-10 20:27  /  1455 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

好像是面试题

2 个回复

正序浏览
一楼的朋友都明确思路了;这是代码体现.

线程创建的俩种方式 :

package bbs.itheima.com;

public class TraditionalThread {

public static void main(String... args) {

/*

第一个创建线程思路:

1.继承Thread类。

2.覆盖Thread类中的run方法。

3.把线程要运行的代码封装到run方法中。

4.调用strat方法,开启一个线程并调用run方法。

*/

new Thread() {

public void run() {

while (true) {

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(this.getName());

}

}

}.start();

/*

第二中创建线程思路:

1.实现Runnbale接口。

2.覆盖Runnable接口的run方法。

3.创建一个线程,把Runnable子类当成参数进行传递。

4.把线程要运行的代码封装到Runnable子类的run方法中。

5.调用线程的start方法,开启线程并调用run方法。

*/

new Thread(new Runnable(){

public void run(){

while (true) {

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName());

}

}

}).start();

/*

如果Thread子类构造参数接收一个Runnable接口的子类对象,并且覆盖Thread子类的run方法。

那么调用strat方法会调用哪个线程里面的run方法呢?

答案:调用的是Thread子类中的run方法。

*/

new Thread(new Runnable(){

public void run(){

System.out.println("Runnable");

}

}){

public void run(){

System.out.println("subThread");

}

}.start();
}

}

}

}
/*

总结:俩种创建线程的方式,到底用哪个更合适呢?

         其实俩种方法都可以,但是第二种方法更能体现面向对象的思想。

*/
回复 使用道具 举报
你的意思是不是多线程的两种创建方式啊,第一种是创建类继承Thread类,重写Thread类的run()方法。第二种是
创建一个类实现Runnable接口,重写run()方法,然后创建实现类对象,并把它作为参数传递给Thread类的构造方法,创建Thread对象,通过Thread的对象执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马