一直存在的DubboResponseTimeoutScanTimer
基于dubbo2.5.3
每次通过jstack pid
出来的结果中都有:
"DubboResponseTimeoutScanTimer" daemon prio=10 tid=0x00007f5990002800 nid=0x7ba6 sleeping[0x00007f59fe5d1000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture$RemotingInvocationTimeoutScan.run(DefaultFuture.java:300)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
在DefaultFuture.java
中:
static {
Thread th = new Thread(new RemotingInvocationTimeoutScan(), "DubboResponseTimeoutScanTimer");
th.setDaemon(true);
th.start();
}
而RemotingInvocationTimeoutScan
是DefaultFuture
中的一个静态内部类,随着启动就加载完成,成为守护线程