大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 舉例說明Java多線程demo

舉例說明Java多線程demo

更新時間:2022-08-05 10:34:19 來源:動力節點 瀏覽1331次

實現Java多線程demo用什么方式?動力節點小編來告訴大家。

方式一:繼承Thread類的方式:?

創建一個繼承于Thread類的子類

重寫Thread類的run() --> 將此線程執行的操作聲明在run()中

創建Thread類的子類的對象

通過此對象調用start():①啟動當前線程 ② 調用當前線程的run()

?方式二:實現Runnable接口的方式:?

創建一個實現了Runnable接口的類

實現類去實現Runnable中的抽象方法:run()

創建實現類的對象

將此對象作為參數傳遞到Thread類的構造器中,創建Thread類的對象

通過Thread類的對象調用start()

?兩種方式的對比:?

開發中:優先選擇:實現Runnable接口的方式

原因:

1. 實現的方式沒類的單繼承性的局限性

2. 實現的方式更適合來處理多個線程共享數據的情況。

聯系:public class Thread implements Runnable

相同點:兩種方式都需要重寫run(),將線程要執行的邏輯聲明在run()中。

目前兩種方式,要想啟動線程,都是調用的Thread類中的start()。

用偽代碼來表示:

//1. 創建一個繼承于Thread類的子類
class MyThread extends Thread {
    //2. 重寫Thread類的run()
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if(i % 2 == 0){
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }
    }
}
public class ThreadTest {
    public static void main(String[] args) {
        //3. 創建Thread類的子類的對象
        MyThread t1 = new MyThread();
        //4.通過此對象調用start():①啟動當前線程 ② 調用當前線程的run()
        t1.start();
        //問題一:我們不能通過直接調用run()的方式啟動線程。
//        t1.run();
        //問題二:再啟動一個線程,遍歷100以內的偶數。不可以還讓已經start()的線程去執行。會報IllegalThreadStateException
//        t1.start();
        //我們需要重新創建一個線程的對象
        MyThread t2 = new MyThread();
        t2.start();
        //如下操作仍然是在main線程中執行的。
        for (int i = 0; i < 100; i++) {
            if(i % 2 == 0){
                System.out.println(Thread.currentThread().getName() + ":" + i + "***********main()************");
            }
        }
    }
}
class Window1 implements Runnable{
    private int ticket = 100;
    @Override
    public void run() {
        while(true){
            if(ticket > 0){
                System.out.println(Thread.currentThread().getName() + ":賣票,票號為:" + ticket);
                ticket--;
            }else{
                break;
            }
        }
    }
}
public class WindowTest1 {
    public static void main(String[] args) {
        Window1 w = new Window1();
        Thread t1 = new Thread(w);
        Thread t2 = new Thread(w);
        Thread t3 = new Thread(w);
        t1.setName("窗口1");
        t2.setName("窗口2");
        t3.setName("窗口3");
        t1.start();
        t2.start();
        t3.start();
    }
}

不是所有的場合都適合多線程的使用,使用多線程要注意的問題也不少。如果大家想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合小白學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲国产精品一区二区久 | 日本韩国欧美在线观看 | 日本视频在线观看不卡高清免费 | 欧美三级纯黄版 | 两性色午夜视频免费老司机 | 中文字幕无线码中文字幕免费 | 天天爆操| 国产成人综合91精品 | 精品久久久久久久久中文字幕 | 国产在线精品一区二区 | 色偷偷久久一区二区三区 | jizzjizzjizz中国 | 999热这里全都是精品 | 日本一区二区三区免费在线观看 | 国内精品伊人久久久影视 | 国产3344永久在线观看视频 | 中国性猛交xxxxx免费看 | 国产亚洲精品自在线观看 | 午夜影院一区二区三区 | 我要看免费的毛片 | 亚洲精品专区一区二区三区 | 精品一精品国产一级毛片 | 永久黄网站色视频免费观看99 | 国产中文字幕视频 | 亚洲视频成人 | julia中文字幕久久亚洲 | 国产中文字幕一区 | 欧美精品九九99久久在观看 | 精品视自拍视频在线观看 | 国产福利视频一区二区三区四区 | 亚洲一区二区三区中文字幕 | 99热免费精品 | 97精品国产高清在线看入口 | 国产精品国语自产拍在线观看 | 亚洲涩涩视频 | 亚洲精品一区二区不卡 | 四虎影院官网 | 久久久久九九 | 亚洲自拍激情 | 欧美色视频超清在线观看 | 伊人久久丁香色婷婷啪啪 |