黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 3種創(chuàng)建線程的方式

3種創(chuàng)建線程的方式

更新時間:2020-11-06 17:52:08 來源:動力節(jié)點(diǎn) 瀏覽1318次

在 Java 中使用 Thread 類代表線程,所有的線程對象都必須是 Thread 類或者其子類的實例,因此,創(chuàng)建線程實際上就是創(chuàng)建Thread類。本文我們向大家介紹3種創(chuàng)建線程的方式,為我們后面學(xué)習(xí)多線程埋下伏筆。


在Java 中有3種創(chuàng)建線程方式,下面一一學(xué)習(xí):

1. 繼承 Thread 類

step 1 定義一個類繼承自 Thread 類,然后重寫該類的 run 方法,這個方法的內(nèi)容表示線程要完成的任務(wù)

step 2 創(chuàng)建線程對象,即創(chuàng)建 Thread 類子類的實例

step 3 調(diào)用步驟二中創(chuàng)建出來的對象的 start 方法來啟動線程

public class CreateThreadByExtendsThread extends Thread {

@Override

public void run() {

IntStream.rangeClosed(1, 10).forEach(i -> System.out.println(Thread.currentThread().getName() + " " + i));

}

public static void main(String[] args) {

CreateThreadByExtendsThread threadOne = new CreateThreadByExtendsThread();

CreateThreadByExtendsThread threadTwo = new CreateThreadByExtendsThread();

CreateThreadByExtendsThread threadThree = new CreateThreadByExtendsThread();

threadOne.start();

threadTwo.start();

threadThree.start();

}

}


2.實現(xiàn) Runnable 接口

step 1 定義一個類實現(xiàn) Runnable 接口,然后實現(xiàn)該接口的 run 方法,這個方法的內(nèi)容同樣也表示線程要完成的任務(wù)

step 2 創(chuàng)建 Runnable 接口實現(xiàn)類的實例,并使用該實例作為 Thraed 構(gòu)造方法的參數(shù)創(chuàng)建 Thread 類的對象,該對象才是真正的線程對象

step 3 調(diào)用線程對象的 start 方法來啟動該線程

public class CreateThreadByImplementsRunnable implements Runnable {

@Override

public void run() {

IntStream.rangeClosed(1, 10).forEach(i -> System.out.println(Thread.currentThread().getName() + " " + i));

}

public static void main(String[] args) {

CreateThreadByImplementsRunnable target = new CreateThreadByImplementsRunnable();

new Thread(target, "thread-one").start();

new Thread(target, "thread-two").start();

new Thread(target, "thread-three").start();

}

}


3. 實現(xiàn) Callable 接口

step 1 定義一個類實現(xiàn) Callable 接口,然后實現(xiàn)該接口的 call 方法,這個方法的內(nèi)容同樣也表示線程要完成的任務(wù),并且有返回值

step 2 創(chuàng)建 Callable 接口實現(xiàn)類的實例,使用 FutureTask 類來包裝 Callable 對象,該 FutureTask 對象封裝了 Callable 對象的 call 方法的返回值

step 3 并使用 FutureTask 對象作為 Thraed 構(gòu)造方法的參數(shù)創(chuàng)建 Thread 對象,并調(diào)用該對象的 start 方法啟動線程

step 4 調(diào)用 FutureTask 對象的 get 方法獲取線程執(zhí)行結(jié)束后的返回值

public class CreateThreadByImplementsCallable implements Callable{

@Override

public Integer call() {

AtomicInteger count = new AtomicInteger();

IntStream.rangeClosed(0, 10).forEach(i -> {

System.out.println(Thread.currentThread().getName() + " " + i);

count.getAndIncrement();

});

return count.get();

}

public static void main(String[] args) {

CreateThreadByImplementsCallable target = new CreateThreadByImplementsCallable();

FutureTaskfutureTask = new FutureTask<>(target);

IntStream.rangeClosed(0, 10).forEach(i -> {

System.out.println(Thread.currentThread().getName() + " 的循環(huán)變量 i 的值" + i);

if (i == 8) {

new Thread(futureTask, "有返回值的線程").start();

}

});

try {

System.out.println("有返回值線程的返回值:" + futureTask.get());

} catch (InterruptedException | ExecutionException e) {

e.printStackTrace();

}

}

}


通過以上可以看出,其實通過實現(xiàn) Runnable 接口和實現(xiàn) Callable 接口這兩種方式創(chuàng)建線程基本相同,采用實現(xiàn) Runnable 和 Callable 接口的方式創(chuàng)建線程時,線程類只是實現(xiàn)接口,還可以繼承其它類(PS:Java 單繼承決定)。在這種方式下,多個線程可以共享同一個 target對象,所以非常適合多個相同線程來處理同一份資源的情況。還有一點(diǎn)就是,使用繼承 Thread 類的方式創(chuàng)建多線程時,編寫簡單,如果需要訪問當(dāng)前線程,則無需使用 Thread.currentThread() 方法,直接使用 this 即可獲得當(dāng)前線程。


最后,3種創(chuàng)建線程的方式已全部講完了,相信對于以上的內(nèi)容有所了解和掌握吧,想要全方位學(xué)習(xí)Java多線程的小伙伴可以觀看本站的Java多線程教程,里面對多線程的講解很全面透徹,可以加深我們對多線程的理解。


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产成人精品视频2021 | 国产你懂的在线观看 | 久久天天躁夜夜躁2019 | 麻豆精品在线观看 | 成人精品视频在线 | 99视频污在线观看 | 国产片18在线观看 | 天天综合天天做 | 天天噜日日噜夜夜噜 | 欧美日本一区亚洲欧美一区 | 欧美不卡精品中文字幕日韩 | 午夜婷婷网| 国产一区欧美 | 黄色网址亚洲 | 免费看黄色一级毛片 | 最新精品亚洲成a人在线观看 | 精品视频手机在线观看免费 | 成人影片在线播放 | 日韩欧美亚洲视频 | 综合 欧美 亚洲日本 | 国产欧美日韩精品a在线观看 | 在线小视频你懂的 | 夜夜爽免费视频 | 免费国产一级特黄久久 | 嘿嘿视频在线观看 成人 | 免费无尽xxx视频 | 免费看色片网站 | 成人资源在线 | 免费a级毛片在线观看 | 成人18免费网站在线观看 | 成人全黄三级视频在线观看 | 亚洲欧美国产精品久久久 | 野猫鲁24小时网址最新 | 精品国产欧美另类一区 | 欧美精品第二页 | 一级午夜免费视频 | 男人女人的免费视频网站 | 久久久精品免费视频 | 免费毛片视频网站 | 国产又黄又爽又猛的免费视频播放 | 人人骚|