Java線程中start()和run()的區別

run():不管是通過實現Runnable接口還是繼承Thread類(其實Thread中的run方法也是調用了Runnable接口的run方法),調用run()方法僅僅是相當於調用了一個方法,沒有啓用新的線程。

start():會啓動一個新線程,運行重寫的run()代碼。

例子:

public class MyThread {

    public static void main(String[] args) {
        SThread sThread = new SThread();
        sThread.run();
        sThread.start();
        S2Thread s2Thread = new S2Thread();
        s2Thread.run();
    }
}
class SThread extends Thread {
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + " run method run() by Class Thread");
    }
}
class S2Thread implements Runnable {
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + " run method run() by Interface Runnable");
    }
}

結果:

main run method run() by Class Thread
Thread-0 run method run() by Class Thread
main run method run() by Interface Runnable
參考文章:線程中run()和start()的區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章