Java多線程1:創建的三種方式以及比較

1、繼承Thread類

public class ThreadA extends Thread {
    // 直接繼承Thread,並覆蓋其run()方法
    @Override
    public void run() {
        System.out.println("ThreadA");
    }
}

2、實現Runnable接口
Java爲單親繼承,一個類只能唯一繼承另一個類。如果直接繼承Thread類來定義線程,則在開發中有許多限制。

public class hreadB implements Runnable {
    public void run() {
        System.out.println("ThreadB");
    }
}

3、實現Callable接口

public class ThreadC implements Callable <String> {
    public String call() {
        return "ThreadC";
    }
}

public static void main(String[] args) {
    ThreadC threadc = new ThreadC();
    FutureTask<String> feature = new FutureTask<String>(threadc);
    new Thead(feature).start();    // 啓動
    // 獲取線程返回結果
    System.out.println(feature.get();
}

比較:
1、繼承Thread類的方式雖然簡單,但是不能繼承其他類。很多情況下,開發者只是需要自己的類具有線程的能力,扮演線程的角色,而自己的類需要繼承其他類。
2 、實現Runnable接口,不影響繼承其他類,也不影響實現其他接口。只是實現Runable接口的類多了一種扮演角色,多了一種能力,更加靈活。

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