这些Keep-Alive-Timer线程左侧有白色标签,白色标签未在下面描述其含义。我想知道如何创建这些Keep-Alive-Timer线程以及原因。
实际上,我正在使用Timer
检查程序中的心跳消息。每当心跳到来时,我会安排一个新的TimerTask
延迟6秒。如果没有心跳,则会触发TimerTask
并发送警报。
答案 0 :(得分:3)
Keep-Alive-Thread负责维护KeepAliveCache
,它存储有关使用Keep-Alive
属性的http连接的信息。如果你有至少一个这样的连接,将会有一个Keep-Alive-Thread观看它们。当您关闭所有保持活动连接时,此线程将被销毁。当您向空缓存添加新的保持活动连接时,JVM会再次启动此线程。
白色表示线程不再存在。如您所见,您的JVM会不断创建和销毁此线程。
您似乎正在使用跟踪心跳的计时器任务手动执行相同的工作。 6秒后关闭那些保持活动的连接,JVM会破坏Keep-Alive-Thread。您创建一个新连接,JVM开始新观看Keep-Alive-Thread。
如果在http连接上使用Keep-Alive
属性,最好只设置正确的超时并让JVM执行内务处理工作。