在傳統程式裡,執行的方式總是必須順著程式的流程進行,遇到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