java线程同时继承Thread实现Runnable

java线程有两种创建方式

 

第一种方式:使用Runnable接口创建线程

第二种方式:直接继承Thread类创建对象

  使用Runnable接口创建线程

1.可以将CPU,代码和数据分开,形成清晰的模型

2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法

3.有利于保持程序的设计风格一致

  直接继承Thread类创建对象

1.Thread子类无法再从其它类继承(java语言单继承)。

2.编写简单,run()方法的当前对象就是线程对象,可直接操作。

在实际应用中,几乎都采取第一种方式

 

 

上边的是最明显的区别,但是我看到有笔试题会有一个类既继承了Thread又实现Runnable,问是否会出错什么的,今天突然想到了就打算查清楚,我还发现就是去查一个东西还是挺费劲的,百度半天也没找到(也估计是自己不会找),干脆直接在Eclipse里实验了一下,代码如下

public class TestThread extends Thread implements Runnable{
  public void run(){
   for(int i = 0;i<100;i++){
    System.out.println("this is in the Test:"+i);
   }

  }
 
 public static void main(String[] args){
  
  TestThread t = new TestThread ();
  Thread thread = new Thread(t);
  thread.start();
 }
 

}

 

还有把main方法中的调用改为

  TestThread t = new TestThread ();

  t.start();

两种调用都是正确的,编译和运行时都不会报错。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值