黑马程序员技术交流社区

标题: 多线程这样做有什么不好 [打印本页]

作者: 孙胜    时间: 2013-5-1 22:29
标题: 多线程这样做有什么不好
本帖最后由 孙胜 于 2013-5-2 20:58 编辑

开启多线程一般有两种方法:
1.写个类TestClass继承Thread,重写run方法,然后new TestClass().start();

2.写个类TestClass实现Runnable接口,重写run方法,然后new Thread(new TestClass()).start();
或者用内部类简写new Thread(new Runnable(){
        public void run(){
        }
}.start();




我自己试验了下这样也行:
(new Thread(){
        public void run(){
        }
}).start();
但是没见过有人用,谁能告诉我不这么写的原因吗?

作者: wudongzhe    时间: 2013-5-1 22:35
你这就是第一种
作者: wudongzhe    时间: 2013-5-1 22:37
创建了 Thread子类的匿名内部类 覆盖run方法
作者: 吴传淦    时间: 2013-5-1 22:41
第一种继承了Thread类以后就不能继承别的类了
第二种实现了Runnable接口以后还可以继承别的类
public class ThreadTest {
        public static void main(String[] args){
        //这么写就是用匿名内部类使用第一种方法吧
        Thread a = new Thread(){
                        public void run(){
                                System.out.println("aa");
                        }
                };
                a.start();
               
        }

}


作者: 刘学明       时间: 2013-5-2 10:39
楼主说的那种 创建Thread类的匿名子类对象 很常用啊  
第一种 继承Thread类 中的匿名子类
new Thread(){
        public void run(){
        }
}.start();

第二种 :创建实现Runnable接口中的匿名了类
Runnable r =new Runnable(){}{
   public void run(){
   }
}
r.start();



作者: 黄玉昆    时间: 2013-5-2 20:28
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2