java具有單繼承侷限問題,所以任何情況下對於類的繼承都應該是迴避的問題。那麼多線程也一樣。
Thread中就存在單繼承侷限的問題
package cn.ls.xiancheng;
public class Mythread2 implements Runnable {
private String name;
public Mythread2(String name) {
this.name=name;
}
@Override
public void run() {
for(int x=0;x<10;x++) {
System.out.println(this.name +"-->"+x);
}
}
public static void main(String[] args) {
Mythread2 mt1=new Mythread2("線程一");
Mythread2 mt2=new Mythread2("線程二");
Mythread2 mt3=new Mythread2("線程三");
new Thread(mt1).start();
new Thread(mt2).start();
new Thread(mt3).start();
}
}
區別與Thread類相比,此時的Mythread2在結構上與之前沒有區別,但是,如果是直接繼承Thread,可以直接調用start方法,如果實現了Runnable接口,那麼久沒有start方法可以被繼承
但是:Thread裏有一個構造方法
public thread(Runnadle target)接收的就是一個Runnable對象
new Thread(mt3).start(); 所以這樣來啓動多線程
也就避免了單繼承侷限。實際中使用它是最合適的