0

說我有10個deamon線程的Java應用程序。如何測量線程等待數據庫連接時出現的延遲?

說我有最多3個連接的連接池(例如c3p0)。

每個線程都與數據庫一起工作。當一個線程正在等待BLOCKED狀態的連接時,它可能會發生(當然確實發生)。

我需要測量總線程延遲,當它們每個處於BLOCKED狀態等待連接。

這樣做的最好方法是什麼?

回答

0

使用您自己的實現擴展線程並覆蓋「notify」方法,以便在某種緩存中保存「system.currentTimeMilis」 - 您可以調用帶有miliseconds參數的方法來處理每個線程的notifyTimes 。 然後在擴展線程中覆蓋run/start方法並重新獲取currentTimeMilis。 獲取等待方法的當前時間(再次覆蓋,不要忘記在重寫中調用超級方法)。 玩這些3種類型的時間你的線程,你應該能夠做你的基準。