位置:首頁 > 軟件操作教程 > 編程開發(fā) > Java > 問題詳情

Java 繼承Thread類的示例

提問人:劉旭39發(fā)布時(shí)間:2020-11-30

使用Thread類創(chuàng)建并執(zhí)行線程的具體步驟如下:

1.創(chuàng)建Thread類的子類;

2.重寫Thread類中的mnO方法;

3.創(chuàng)建ThreacI子類對象,即創(chuàng)建一個(gè)線程對象;

4.調(diào)用線程對象的startO方法啟動(dòng)線程,之后系統(tǒng)會自動(dòng)調(diào)用重寫的mn()方法中的具體實(shí)現(xiàn)。 創(chuàng)建線程對象后,JVM內(nèi)存中僅會出現(xiàn)一個(gè)Thread類的實(shí)例對象,線程并不會自動(dòng)運(yùn)行,必須調(diào)用線程對象的start()方法來啟動(dòng)線程。實(shí)際完成線程功能的代碼位于重寫的run()方法中,調(diào)用start()方法時(shí)會先分配線程所需的內(nèi)存資源,再調(diào)用nm()方法運(yùn)行線程。

//繼承Thread類 

public class ThreadDemo extends Thread {

private Thread t;

private String threadName;

public ThreadDemo(String name) {

threadName=name;

System.out.println("創(chuàng)建線程,名稱為:"+threadName);

}

public void run() {

System.out.println("運(yùn)行線程"+threadName);

try {

for(int i = 4;i>0;i++) {

System.out.println("線程名稱為:"+threadName+","+i);

System.out.println("線程休息,時(shí)間為:100ms");

Thread.sleep(100);

}

} catch (InterruptedException e) {

System.out.println("線程"+threadName+"中斷");

}

System.out.println("線程"+threadName+"退出,中止……");

}

public void start() {

System.out.println("啟動(dòng)線程"+threadName);

//避免NPE

if(t==null) {

t=new Thread();

t.start();

return;

}

this.start();

}

}

//創(chuàng)建線程示例

public class Demo {

public static void main(String[] args) {

ThreadDemo thread1 = new ThreadDemo("線程-1");

thread1.start();

ThreadDemo thred2=new ThreadDemo("線程-2");

}

}

ZR$0$@6R4UQ(0VRIFNO(J[K.png

ZV14P61YT5`~F~9}PV79S_1.png

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部