2016-09-05 4 views
3

enter image description hereJVisualVMスレッド調査者のキープアライブタイマーとは何ですか?

これらのキープアライブタイマースレッドは、左側に白いラベルが付いています。白いラベルはその意味を以下で説明していません。これらのKeep-Alive-Timerスレッドはどのように作成され、なぜそれが行われるのだろうか。

enter image description here

実は、私は私のプログラムでは、ハートビートメッセージをチェックするTimerを使用しています。ハートビートが来るたびに、私は新しいTimerTaskを6秒の遅れでスケジュールします。ハートビートが来ない場合、このTimerTaskがトリガーされ、アラートが送信されます。

答えて

2

キープアライブスレッドは、Keep-Alive属性を使用するhttp接続に関する情報を格納するKeepAliveCacheのメンテナンスを担当します。このような接続が少なくとも1つあれば、Keep-Alive-Threadがそれらを見ています。キープアライブ接続をすべて閉じると、このスレッドは破棄されます。新しいキープアライブ接続を空のキャッシュに追加すると、JVMはこのスレッドを再び開始します。

白い色はスレッドがもう生きていないことを意味します。ご覧のように、JVMはこのスレッドを絶えず作成して破壊します。

ハートビートを追跡するタイマータスクで同じ作業を手動で行っているようです。 6秒後にキープアライブ接続を閉じ、JVMがキープアライブスレッドを破棄します。あなたは新しい接続を作成し、JVMはKeep-Alive-Threadを新たに見ています。

http接続でKeep-Alive属性を使用している場合は、正しいタイムアウトを設定してJVMにハウスキーピング作業をさせてください。

関連する問題