2016-07-05 62 views
-1

我使用visualvm以調試模式運行java程序。我知道我的程序中的方法是從Main方法調用的,但我不知道爲什麼還有其他線程。有什麼辦法可以減少那些盜賊?來自Java程序的線程

visualvm result

enter image description here

+0

什麼,保存1毫秒? –

+0

你認爲也許GC在另一個線程? –

+0

這不是保存1ms。我想知道爲什麼有5個線程與我的主要方法分開。 – goutthee

回答

0

正如所建議的那些方法名,他們是通過MS SQL Server JDBC連接超時檢查(你的SQL請求啓動的線程可以跑到丟失,沒有超時檢查,你可能會被封鎖在一個SQL請求中永遠)。他們是爲了你的良善而開始的,你不應該試圖阻止/減少它們。

+0

謝謝你,我檢查了代碼。是的,我有從主要方法調用的方法。這些方法被調用來獲得與數據庫的連接。由於有這4種方法,我找到了4個額外的線程。我在主要方法中使用了連接池,然後將這個連接作爲這4種方法的參數之一。有沒有比通過方法參數傳遞連接更好的方法。 – goutthee

+0

我建議你爲此打開一個單獨的問題,因爲這確實超出了這個範圍。我在JDBC領域不是很有經驗。 – glee8e

+0

是的,謝謝你@ glee8e – goutthee