Thread的start方法和run方法的區別

1、start方法才能真正啓動線程,此時線程會處於就緒狀態,一旦得到時間片,則會調用線程的run方法進入運行狀態。
2、run方法只是普通方法,如果直接調用run方法,程序只會按照順序執行主線程這一個線程。
可以通過一個Demo例證:

public class Main {

    public static void main(String args[]) {
        Thread t = new Thread() {
            public void run() {
                pong();
            }
        };
//        t.run();
        t.start();
        
        System.out.print("ping");
    }
    static void pong() {
        System.out.print("pong");
    }
}

如果只是調用了run方法,那麼最後控制檯輸出的結果只會有一種:
在這裏插入圖片描述
但是調用了start方法纔是真正的線程開始,在有時間片的時候線程會隨機調用run方法,所以會有多種結果:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章