iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

菜雞的JAVA日記系列 第 25

DAY25-JAVA的多執行緒

在傳統程式裡,執行的方式總是必須順著程式的流程進行,遇到if-else敘述就加以判斷;遇到for、while等迴圈就多繞幾個圈圈,不管如何變化,最後程式還是循著一定的程式執行,且一次只能執行一個程式區塊。

JAVA的「多執行緒」(multi-thread),是指程式執行的流程,「多執行緒」的機制可以同時執行多個程式區塊,使程式執行的效率變的更高,也可以克服傳統程式語言所無法設計的問題。

啟動多執行緒
想要啟動執行緒,必須準備好以下兩件事:
(1)此類別必須是延伸自Thread類別,使自己成為他的子類別。
(2)執行緒的處理必須鑽寫在run()函數內。

Thread類別存放在java.lang類別庫裡,由於她會自動載入,因此我們不需特別載入java.lang類別庫。此外,run()是定義在Thread類別裡的一個函式,因此把執行緒的程式寫在run()內,事實上就是執行改寫(override)的動作。

class 類別名稱 extends Thread{ //從Thread類別延伸出子類別
類別裡的資料成員;
類別裡的函式;
修飾子 run(); //改寫Thread類別裡的run()函式
{
以執行緒處理的程序;
}
}

public void run(){  //改寫Thread類別裡的run()函式
    for(int i=0;i<4;i++){
        for(int j=0;j<10000000000;j++){  //空迴圈,用來拖慢下面 System.out.println的執行速度
            System.out.println(id+" is running..");
        }
    }
}    
...
public static void main(String args[]){
    Test dog = new Test("puppy");
    Test cat = new Test("kitten");
    dog.start();  //呼叫start(),而不是run()
    cat.start();  //呼叫start(),而不是run()
}

但哪一個字串先出現就不一定,全看誰先搶到CPU資源!事實上,在相同的環境內,甚至每次執行的結果也可能會不一樣。

又是星期一啦......
疲憊又充實的一天:))
See U tomorrow~~

菜鳥工程師的體脂肪

菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link


上一篇
DAY24-JAVA的拋出例外
下一篇
DAY26-JAVA的Runnable介面
系列文
菜雞的JAVA日記30

尚未有邦友留言

立即登入留言