更新時間:2017-11-14 來源:黑馬程序員 瀏覽量:
Java中只支持單繼承,一個類一旦有了父類就無法再繼承其它類。比如學(xué)生類Dog繼承了Animal類,這時由于單繼承的局限性,導(dǎo)致Dog類無法通過繼承Thread類創(chuàng)建線程。為了解決這個問題,在JDK中提供了一個java.lang.Runnable接口,通過創(chuàng)建Runnable接口實(shí)現(xiàn)類的實(shí)例對象,并將該對象與Thread對象相關(guān)聯(lián)可以創(chuàng)建線程,代碼如下所示:
public class TestRunnable { publicstatic void main(String[] args) { Aa = new A(); // 創(chuàng)建A類的一個實(shí)例對象 Threadt = new Thread(a); // 創(chuàng)建一個Thread類的實(shí)例 t.start(); // 使線程進(jìn)去Runnable狀態(tài) while(true) { System.out.println(Thread.currentThread().getName() +"................... 主線程 is running"); } } } class A implements Runnable { publicvoid run() { // 線程的代碼段,當(dāng)調(diào)用start()方法時,線程從此處開始執(zhí)行 while(true) { System.out.println(Thread.currentThread().getName() +"...................A is running"); } } }
運(yùn)行結(jié)果如下所示
Thread-0...................A is running
Thread-0...................A is running
Thread-0...................A is running
main ................... 主線程 is running
main ................... 主線程 is running
main ................... 主線程 is running
......
從例子可以看到,一個類通過實(shí)現(xiàn)Runnable接口,并把該類的實(shí)例對象傳遞給Thread的構(gòu)造方法可以創(chuàng)建線程。這樣的創(chuàng)建方式有一下幾個好處:
1.適合多個相同程序代碼的線程去處理同一個資源的情況,把線程同程序代碼、數(shù)據(jù)有效的分離,很好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計思想。
2.可以避免由于Java的單繼承帶來的局限性。在開發(fā)中經(jīng)常碰到這樣一種情況,就是使用一個已經(jīng)繼承了某一個類的子類創(chuàng)建線程,由于一個 類不能同時有兩個父類,所以不能用繼承Thread類的方式,那么就只能采用實(shí)現(xiàn)Runnable接口的方式。友情提示:獲得更多學(xué)科學(xué)習(xí)視頻+資料+源碼,請加QQ:3276250747。
本文版權(quán)歸黑馬程序員JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員JavaEE培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營】深圳跨境電商運(yùn)營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19