更新時(shí)間:2023年09月11日16時(shí)59分 來源:傳智教育 瀏覽次數(shù):
Thread類是iava.lang下的一個(gè)線程類,用來實(shí)現(xiàn) Java多線程。通過繼承Thread類的方式來實(shí)現(xiàn)多線程非常簡單,主要步驟如下:
(1)創(chuàng)建一個(gè) Thread線程類的子類(子線程),同時(shí)重寫 Thread類的 run)方法;
(2)創(chuàng)建該子類的實(shí)例對(duì)象,并通過調(diào)用start()方法啟動(dòng)線程。
接下來通過案例來演示Thread類使用這兩種方法來實(shí)現(xiàn)多線程的過程。
//1.定義一個(gè)繼承 Thread 線程類的子類 class MyThread1 extends Thread { //創(chuàng)建子線程類有參構(gòu)造方法 public MyThread1(String name) { super(name); } //重寫 Thread類的run()方法 public void run() { int i=0; while (i++<5){ System.out.printIn (Thread.currentThread().getName() +"的run()方法在運(yùn)行") } } } public class Example01 { public static void main(String[] args)( //2.創(chuàng)建MyThread1實(shí)例對(duì)象 MyThread1 thread1=new MyThread1("thread1") ; //調(diào)用 start()方法啟動(dòng)線程 thread1.start(); //創(chuàng)建并啟動(dòng)另一個(gè)線程myThread2 MyThread1 thread2=new MyThread1("thread2u) thread2.start(); } }定義了一個(gè)繼承 Thread 線程類的子類 MyThread1,并重寫了 run()方法其中currentThread()是 Thread類的靜態(tài)方法,用來獲取當(dāng)前線程對(duì)象,getName()方法用來獲取線程名稱。然后在 main()方法中分別創(chuàng)建了兩個(gè)線程實(shí)例,并指定線程名稱為thread1和thread2,最后通過 start()方法啟動(dòng)線程。
兩個(gè)線程對(duì)象交互執(zhí)行了各自重寫的 run()方法,并打印出對(duì)應(yīng)的輸出信息,而不是按照編程順序先執(zhí)行完第一個(gè)線程方法后才執(zhí)行第二個(gè)線程方法,這就說明程序?qū)崿F(xiàn)了多線程功能。
注意:從程序運(yùn)行結(jié)果可以看出創(chuàng)建的兩個(gè)線程實(shí)例交互運(yùn)行,但實(shí)際上,該案例中還有一個(gè) main()方法開啟的主線程,這是程序的入口,僅用于創(chuàng)建并啟動(dòng)了兩個(gè)子線程實(shí)例,并沒有執(zhí)行其他動(dòng)作輸出。通過定義一個(gè)子類MyThread繼承線程類java.lang.Thread,重寫run()方法,編碼簡單。但線程類已經(jīng)繼承Thread,無法繼承其他類,不利于擴(kuò)展。
北京校區(qū)