Java繼承Thread類建立多線程 單線程樣本
樣本,Example01.java
public class Example01{ public static void main(String[] args){ // 建立MyThread執行個體對象 // 調用MyThread類的run()方法在運行 // 該迴圈是一個死迴圈,列印輸出語句 MyThread myThread=new MyThread(); myThread.run(); while(true){ System.out.println("Main方法在運行"); } }}class MyThread{ public void run(){ while (true){ // 該迴圈是一個死迴圈,列印輸出語句 System.out.println("MyThread類的run()方法在運行"); } }}
編譯運行
可以看出,程式一直在列印MyThread類的run()方法
因為,該層序是一個單線程程式,當調用MyThread類的run()方法時,遇到死迴圈,程式會一直進行,因此,MyThread類的列印語句,將永遠執行,在main()方法中的列印語句,無法得到執行 多線程樣本
如果,希望兩個while迴圈中的列印語句,能夠並發執行,就需要實現多線程
為此,JDK中提供了一個線程類Thread,通過繼承Thread類,並重寫Thread類中的run()方法,便可實現多線程
在Thread類中,提供了一個start()方法,用於啟動新線程,線程啟動之後,系統會自動調用run()方法
樣本,Example02.java
public class Example02{ public static void main(String[] args){ // 建立線程MyThread的線程對象 // 開啟線程 // 通過死迴圈語句列印輸出 MyThread myThread=new MyThread(); myThread.start(); while(true){ System.out.println("main()方法在運行"); } }}class MyThread extends Thread{ public void run(){ while(true){ System.out.println("MyThread類的run()方法在運行"); } }}
編譯運行
可以看出,兩個while迴圈中的列印語句在輪流執行,說明,該樣本實現了多線程 單線程
程式在運行時,會按照代碼的調用順序進行執行 多線程
main()方法和MyThread類的run()方法,可以同時執行,互不影響