JUnit單元測試中多執行緒的坑

2021-09-16 21:23:21 字數 1367 閱讀 3991

junit單元測試方法不輸出

在junit的@test方法中啟用多執行緒,新啟動的執行緒會隨著@test主線程的死亡而不輸出

@test

public

void

testmultithread()

catch

(interruptedexception e)})

; thread.

start()

;try

catch

(interruptedexception e)

system.out.

println

("@test執行緒執行完畢");

} 輸出: 子執行緒執行完畢

@test執行緒執行完畢

可以看到test執行緒會在子執行緒執行完之後再結束。如果有多個子執行緒,就讓每個子執行緒都join一下,這樣test執行緒就會等待每乙個子執行緒結束後再結束。

@test

public

void

testmultithread()

catch

(interruptedexception e)})

; thread.

start()

;try

catch

(interruptedexception e)

system.out.

println

("@test執行緒執行完畢");

} 輸出:子執行緒執行完畢

@test執行緒執行完畢

@test

public

void

testmultithread()

catch

(interruptedexception e)})

; thread thread2 =

newthread((

)->

catch

(interruptedexception e)})

; thread.

start()

; thread2.

start()

;try

catch

(interruptedexception e)

system.out.

println

("@test執行緒執行完畢");

} 輸出:子執行緒1執行完畢

子執行緒2執行完畢

@test執行緒執行完畢

Junit單元測試多執行緒的問題

今天下午很快完成了乙個介面的監控功能,然後屁顛屁顛地用junit開始單元測試。然後我就開始陷入崩潰的邊緣.監控結束後需要將監控結果以郵件的形式傳送給運營的小夥伴維護,前面測試還是很順利,到了開多執行緒發郵件時就不行了,程式也不報錯,也接收不到郵件。然後改 再測試,再冥思一會兒,再改再測試,還是無果,...

junit單元測試不支援多執行緒測試

今天看 高併發 書,寫了乙個多執行緒的類,發現測試方法輸出的結果並不對 同樣的 經過main方法後輸出的結果卻是正常的 經過研究後發現單元測試 test並不支援多執行緒測試 以下為分析過程 private static executorservice ex executors.newfixedthr...

Junit 單元測試

測試類package com.lin.music item import android.content.contentresolver import android.content.context import android.database.cursor import android.net....