中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java_6 線程創建的方式

發布時間:2020-07-05 14:33:00 來源:網絡 閱讀:179 作者:小西幾 欄目:編程語言

一、創建線程的方法

1.繼承Thread類

實現步驟:
(1)創建一個繼承于Thread類的子類
(2)重寫Thread類的run()方法【線程執行的操作聲明在run()中】
(3)創建Thread類的子類的對象
(4)通過此對象調用start()方法【①啟動線程②調用當前線程對象的run方法】
代碼

//(1)創建一個繼承于Thread類的子類
class MyThread1 extends Thread{
    public MyThread1(String name){
        super(name);
    }
        //(2)重寫Thread類的run()方法
    @Override
    public void run() {
        System.out.println("第一種創建線程");
        }
    }
}
public class ThreadTest{
    public static void main(String[] args) {
        //(3)創建Thread類的子類的對象
        MyThread1 t1=new MyThread1();
        //(4)通過此對象調用start()方法
        t1.start();
        }
}

2.實現Runnable接口

實現步驟
(1)創建一個實現了Runnable接口的類
(2)該實現類 去實現Runnable中的抽象方法run()
(3)創建實現類的對象
(4)將此對象作為參數傳遞到Thread類的構造器中,創建 Thread類的對象
【Thread構造方法源碼:public Thread(Runnable target)】
(5)通過Thread類的對象調用start()
代碼

//1.創建一個實現了Runnable接口的類
class MyThread2 implements Runnable{
    @Override
    //2.實現類去實現Runnable中的抽象方法run()
    public void run() {
        System.out.println("第二種創建線程:實現Runnable接口");
            }
     }
         public class ThreadTest1 {
    public static void main(String[] args) {
        //3.創建實現類的對象
        MyThread2 m=new MyThread2();
        // 4.將此對象作為參數傳遞到Thread類的構造器中,創建Thread類的對象
        Thread thread = new Thread(m);
        // 5.通過Thread類的對象調用start()
         thread.start();

二、說明

在前邊說過start()方法的作用:
(1)啟動線程
(2)調用當前線程的run()方法
那么問題來了:為什么在使用Runnable接口創建線程的方法中,明明是Thread類的對象調用的start(),為什么最終會是實現Runnable接口的類的run()方法被執行,而不是Thread類的run()方法被執行?
原因下次再說,要去上課了
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
呼·······,我回來啦!
(1)首先來看一下Thread類的run()方法的源碼:
java_6 線程創建的方式
說明:如果target非空,就執行target的run()方法,那么target又是什么?
(2)再來看一下Thread的一個構造方法Thread(Runnable target)
java_6 線程創建的方式
我們發現target是一個Runnable類型的變量,該變量會作為參數傳入Thread類的構造器中。
java_6 線程創建的方式
說明:target就是實現了Runnable接口的實現類的實例對象。
因為該對象非空,所以Thread的對象在調用了自身的run()方法,然后發現target對象非空,因此轉而執行了實現類的run()方法。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涪陵区| 冕宁县| 马山县| 西丰县| 济源市| 罗源县| 东光县| 任丘市| 汕头市| 宝清县| 什邡市| 额尔古纳市| 普定县| 曲周县| 灵山县| 青海省| 望奎县| 宁乡县| 石棉县| 囊谦县| 馆陶县| 嵊泗县| 资兴市| 万山特区| 合水县| 永春县| 巨野县| 福州市| 交城县| 乌拉特前旗| 延庆县| 清苑县| 白河县| 寿光市| 福建省| 观塘区| 南乐县| 杭锦旗| 彝良县| 光泽县| 钟山县|