Java 繼承Thread類的示例
使用Thread類創(chuàng)建并執(zhí)行線程的具體步驟如下:
1.創(chuàng)建Thread類的子類;
2.重寫Thread類中的mnO方法;
3.創(chuàng)建ThreacI子類對象,即創(chuàng)建一個(gè)線程對象;
4.調(diào)用線程對象的startO方法啟動線程,之后系統(tǒng)會自動調(diào)用重寫的mn()方法中的具體實(shí)現(xiàn)。 創(chuàng)建線程對象后,JVM內(nèi)存中僅會出現(xiàn)一個(gè)Thread類的實(shí)例對象,線程并不會自動運(yùn)行,必須調(diào)用線程對象的start()方法來啟動線程。實(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("啟動線程"+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");
}
}
點(diǎn)擊加載更多評論>>