亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

樟树市| 抚松县| 丹巴县| 大理市| 东丽区| 沙雅县| 纳雍县| 常山县| 山西省| 涪陵区| 顺义区| 巴塘县| 双鸭山市| 台南市| 乐业县| 扎赉特旗| 元氏县| 咸宁市| 宽甸| 二连浩特市| 乌兰察布市| 平果县| 哈密市| 广平县| 法库县| 西华县| 新野县| 明溪县| 泰和县| 原平市| 罗城| 九寨沟县| 东莞市| 乌兰察布市| 固安县| 琼中| 河南省| 伊金霍洛旗| 桓仁| 四平市| 武鸣县|