全國咨詢/投訴熱線:400-618-9090

首頁技術文章正文

Java基礎教程:多線程(3)-----創建線程的第二種方式

創建時間:2017-11-14 16:32:14.0 來源:黑馬程序員

Java中只支持單繼承,一個類一旦有了父類就無法再繼承其它類。比如學生類Dog繼承了Animal類,這時由于單繼承的局限性,導致Dog類無法通過繼承Thread類創建線程。為了解決這個問題,在JDK中提供了一個java.lang.Runnable接口,通過創建Runnable接口實現類的實例對象,并將該對象與Thread對象相關聯可以創建線程,代碼如下所示:

public class TestRunnable {
    publicstatic void main(String[] args) {
        Aa = new A(); // 創建A類的一個實例對象
        Threadt = new Thread(a); // 創建一個Thread類的實例
        t.start(); // 使線程進去Runnable狀態
    while(true) {
        System.out.println(Thread.currentThread().getName()
        +"................... 主線程 is running");
        }
    }
}
class A implements Runnable {
    publicvoid run() { // 線程的代碼段,當調用start()方法時,線程從此處開始執行
        while(true) {
            System.out.println(Thread.currentThread().getName()
            +"...................A is running");
        }
    }
}

運行結果如下所示

Thread-0...................A is running

Thread-0...................A is running

Thread-0...................A is running

main ................... 主線程 is running

main ................... 主線程 is running

main ................... 主線程 is running

......


1569030007205_Java多線程.jpg


從例子可以看到,一個類通過實現Runnable接口,并把該類的實例對象傳遞給Thread的構造方法可以創建線程。這樣的創建方式有一下幾個好處:

1.適合多個相同程序代碼的線程去處理同一個資源的情況,把線程同程序代碼、數據有效的分離,很好的體現了面向對象的設計思想。

2.可以避免由于Java的單繼承帶來的局限性。在開發中經常碰到這樣一種情況,就是使用一個已經繼承了某一個類的子類創建線程,由于一個 類不能同時有兩個父類,所以不能用繼承Thread類的方式,那么就只能采用實現Runnable接口的方式。友情提示:獲得更多學科學習視頻+資料+源碼,請加QQ:3276250747。


本文版權歸黑馬程序員JavaEE學院所有,歡迎轉載,轉載請注明作者出處。謝謝!


作者:黑馬程序員JavaEE培訓學院


首發:http://java.itheima.com/


相關推薦:

在線咨詢 我要報名

时时开奖结果怎样自动发到qq群