多線程的實現2(Runnable)

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(); 所以這樣來啓動多線程
也就避免了單繼承侷限。實際中使用它是最合適的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章