Java多線程實現-Thread類實現多線程

Java多線程的實現需要有一個前提:有一個線程的執行主類。

多線程的主類

普通的Java方法要想執行,需要有一個類,類里面有一個main方法,這樣的類就是主類。
而線程的方法要想執行,除了如同普通方法那樣的主類,還需要一個多線程的主類。

多線程的主類

如果要想實現多線程的主類,現在有兩種方法:

  • 繼承一個Thread類;
  • 【推薦】實現Runnable、Callable接口。

繼承Thread實現多線程主類

java.lang.Thread是一個線程操作的核心類。如果現在要想定義一個線程的主類,就是直接繼承Thread類,然后覆寫其中的run()方法。這個方法就相當于普通主類的main方法。

當有了線程的主類之后,我們會考慮怎么調用。但是,注意的是,調用線程的主類是通過主類的main方法來調用的。調用方法是Thread主類的start方法實現線程啟動的。

class MyThread extends Thread{
    private String title;

    public MyThread(String title) {
        this.title = title;
    }

    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println("My thread title="+title+"i="+i);
        }
    }
}

public class ThreadDemo {
    public static void main(String args[]){
        MyThread myThread1 = new MyThread("thread1");
        myThread1.start();
        MyThread myThread2 = new MyThread("thread1");
        myThread2.start();
        MyThread myThread3 = new MyThread("thread1");
        myThread3.start();
    }
}

線程交替執行的過程如下:

交替執行效果

由于是交替執行的,每次執行的效果應該都是不一樣的。

為什么要通過start調用run方法呢?

簡單來說,我們編寫了run方法,可實際上要實現多線程,必然是對操作系統的調用,由操作系統協調系統資源來實現。
start函數中通過一個start0來調用不同操作系統上的JVM,由JVM負責向不同的操作系統進行協調。這樣,就屏蔽了底層的資源協調和實現細節,編碼人員只需要關注程序協調的統一接口start方法即可。

start的作用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容