多執行緒啟動方式

2021-09-24 09:21:11 字數 1746 閱讀 3573

繼承thread類,並重寫run方法,例項化該類物件,呼叫start方法

**示例

public

class

thread1

extends

thread

}public

static

void

main

(string args)

}}

執行結果(結果不唯一)

1

main1()

1run1()

2run1()

3run1()

4run1()

5run1()

6run1()

7run1()

8run1()

9run1()

10run1()

2main1()

3main1()

4main1()

5main1()

6main1()

7main1()

8main1()

9main1()

10main1

()

實現runnable介面,並重寫run方法,例項化該類物件,並例項化乙個thread類的物件並把實現runnable介面的物件作為引數傳入thread物件中,呼叫thread類物件的start方法。

**示例

public

class

thread2

implements

runnable

}public

static

void

main

(string args)

}}

執行結果(結果不唯一)

1

main()

1run()

2main()

2run()

3run()

4run()

5run()

6run()

7run()

8run()

9run()

10run()

3main()

4main()

5main()

6main()

7main()

8main()

9main()

10main

()

這兩種建立執行緒的方法,無疑第二種 (實現 runnable 介面) 要好一些,因為第一種建立方法繼承了 thread 後就無法繼承其他父類。

補充:為什麼執行緒重寫是在run中,而啟動多執行緒的方式確實start?

1.start()方法來啟動執行緒,真正實現了多執行緒執行。這時無需等待 run 方法體**執行完畢,可以直接繼續執行下面的**;通過呼叫 thread 類的 start () 方法來啟動乙個執行緒, 這時此執行緒是處於就緒狀態, 並沒有執行。 然後通過此 thread 類呼叫方法 run () 來完成其執行操作的, 這裡方法 run () 稱為執行緒體,它包含了要執行的這個執行緒的內容, run 方法執行結束, 此執行緒終止。然後 cpu 再排程其它執行緒。

2.run()方法當作普通方法的方式呼叫。程式還是要順序執行,要等待 run 方法體執行完畢後,才可繼續執行下面的**;程式中只有主線程 —— 這乙個執行緒, 其程式執行路徑還是只有一條, 這樣就沒有達到寫執行緒的目的。

Java多執行緒啟動方式

public class mythread extends thread 輸出當前執行緒物件名稱和執行次數 public static void main string args 1 建立執行緒類,並繼承thread類 2 重寫子類的run方法,實現執行緒的執行邏輯結構 3 在main方法中建立自定...

SpringBoot啟動多執行緒

新建乙個執行緒池的配置類,需要被spring掃瞄到。configuration enableasync public class threadexecutorconfig 新增乙個普通類,裡面編寫需要執行的方法,方法加上 async註解,呼叫方法時自動啟動執行緒。component public c...

多執行緒使用方式

匯入模組 import threading import time 宣告方法 def work n print 開始於 format threading.current thread name,time.ctime time.sleep n print 結束於 format threading.cu...