Thread與Lambda

      在〈Thread與Lambda〉中尚無留言

基礎執行緒

對於初次學習執行緒的人,可以想像成是一顆CPU,執行一支程式。若新增了另一個執行緒,等於再多加一顆CPU,執行另一支程式。此時二支程式同時執行,而達成多工的功能。

當然上述的說法其實是錯的,而且是大錯特錯。但對於第一次接觸執行緒的人,而以用此錯誤的觀念作為進入點。致於正確的觀念,待基本觀念建立後,再進行更深入的說明。

首先建立一個MyThread類別繼承Thread類別,然後將要執行的任務置於覆寫的 run() 方法中。主程式中產生MyThread物件,再對此物件下執 start()指令。

fun main(args:Array<String>){
var t1=MyThread()
var t2=MyThread()
t1.start()
t2.start()
println("主執行程死亡了")
}
class MyThread:Thread(){
override fun run() {
for (i in 1..100){
println("%s : %d".format(Thread.currentThread().name, i))
}
}
}

請注意,kotlin的Thread類別,其實就是Java的Thread,所以有如下幾個屬性
1. Thread.currentThread().name : 取得執行緒的名稱
2. Thread.currentThread().id : 取得執行緒id
3. Thread.sleep(millisecons) : 睡眠

Runnable介面

實作Runnable介面,然後於主程式產生Runnable物件r,接著再產生Thread物件,將r塞入t裏面

🔒 更多內容,請登入會員繼續閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *