編寫執行緒執行時執行的**有兩種方式:一種是建立thread子類的乙個例項並重寫run方法,第二種是建立類的時候實現runnable介面;
一、建立thread子類:
1.繼承thread類建立
public class mythread extends thread
}public class main
}
2.建立
thread的匿名子類:
public class main
}.start();//建立並啟動執行緒
}}
二、建立
實現runnable介面:
1.實現
runnable
介面
public class myrunnable implenemts runnable
}public class main
}
2.建立
runnable的匿名子類:
public class main
}).start();//建立並啟動執行緒
}}
這兩種方式都可以建立執行緒,那麼為什麼大家喜歡用「建立
runnable的匿名子類」,而不用「建立
thread的匿名子類」呢?是第一種速度比較快嗎?還是因為什麼?(這是一般新手都會有的疑問)
答案是使用「
建立runnable的匿名子類
」來建立執行緒並不會是的程式執行變快,主要是因為這種方式更加符合物件導向的程式設計思維;
現在再思考乙個問題:下面執行程式會輸出的是什麼?
public class main
})}.start();//建立並啟動執行緒
}}
能想明白麼?
答案是就是「thread
子類」,原因是子類覆蓋了父類的方法,程式會優先執行子類**;
傳統執行緒的兩種建立方法
傳統建立執行緒的兩種方式 1.直接new thread建立物件 2.利用runnable進行建立 實現 package com.test.threads public class thread01 catch interruptedexception e system.out.println 1 t...
Java傳統執行緒建立方式和互斥
多執行緒並不會提高執行效率,效能更低 多執行緒會搶占cpu的資源,會占用更多的伺服器頻寬,這樣看起來就感覺會更快 建立執行緒有兩種方式 一種是建立thread的子類,覆蓋thread的run方法,還有一種是構造器傳入runnable物件,使用runnable物件的run方法 public class...
傳統執行緒之定時器建立
在業務處理的過程中,我們往往會遇到類似自動任務處理與傳送的需求時,我們該如何處理呢?現在我們建立一般簡單的定時器,以及一些邏輯性思維的小玩意!一 簡單定時器建立 public class main 10000,3000 引數 timertask子類 具體執行的 delay延後執行時間間隔,repea...