Java中如何創(chuàng)建線程,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),崇信網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:崇信等地區(qū)。崇信做網(wǎng)站價格咨詢:18980820575Java實(shí)現(xiàn)并啟動線程有兩種方法
1、寫一個類繼承自Thread類,重寫run方法。用start方法啟動線程2、寫一個類實(shí)現(xiàn)Runnable接口,實(shí)現(xiàn)run方法。用new Thread(Runnable target).start()方法來啟動
注意:start方法不是立即執(zhí)行多線程,而是使得該線程變?yōu)榫途w態(tài)(Runnable)
1.通過擴(kuò)展Thread類來創(chuàng)建線程
(1)定義Thread類的子類,并重寫該類的run方法,該run方法的方法體就代表了線程要完成的任務(wù)。因此把run()方法稱為執(zhí)行體。
(2)創(chuàng)建Thread子類的實(shí)例,即創(chuàng)建了線程對象。
(3)調(diào)用線程對象的start()方法來啟動該線程。
public class MutliThreadDemo { public static void main(String[] args) { //創(chuàng)建Thread子類的實(shí)例,即創(chuàng)建了線程對象 MutliTread mt1 = new MutliTread("Thread"); //不立即執(zhí)行多線程代碼,而是使得該線程變?yōu)榫途w態(tài)(Runnable) mt1.start(); } }//通過擴(kuò)展Thread類來創(chuàng)建線程class MutliTread extends Thread{ public MutliTread(String name) { this.setName(name); //或super(name) } public void run() { for(int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } }}
2.通過Runnable接口創(chuàng)建線程
(1)定義runnable接口的實(shí)現(xiàn)類,并實(shí)現(xiàn)該接口的run()方法,該run()方法的方法體同樣是該線程的線程執(zhí)行體。
(2)創(chuàng)建 Runnable實(shí)現(xiàn)類的實(shí)例,并依此實(shí)例作為Thread的target來創(chuàng)建Thread對象,該Thread對象才是真正的線程對象。
(3)調(diào)用線程對象的start()方法來啟動該線程。
public class MutliThreadDemo3 { public static void main(String[] args) { //創(chuàng)建一個Runnable接口實(shí)現(xiàn)類 MutliTread3 m = new MutliTread3(); //實(shí)例化線程對象 Thread t1 = new Thread(m, "甲"); Thread t2 = new Thread(m, "乙"); Thread t3 = new Thread(m, "丙"); t1.start(); t2.start(); t3.start(); } }class MutliTread3 implements Runnable{ public void run() { for(int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } }}
當(dāng)然第二種方法也可通過匿名內(nèi)部類或lambda表達(dá)式實(shí)現(xiàn),會更簡潔。以下通過Lambda表達(dá)式實(shí)現(xiàn)run方法:
public class MutliThreadDemo3 { public static void main(String[] args) { Runnable r = () -> { for(int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } }; //實(shí)例化線程對象 Thread t1 = new Thread(r, "甲"); Thread t2 = new Thread(r, "乙"); Thread t3 = new Thread(r, "丙"); t1.start(); t2.start(); t3.start(); } }
注:以上三種方式(本質(zhì)上是兩種)創(chuàng)建的三個線程其實(shí)是互相獨(dú)立的
看完上述內(nèi)容,你們掌握J(rèn)ava中如何創(chuàng)建線程的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!