目的:监控服务中各线程的运行状态,防止因为死锁或其它原因导致某些线程不工作,而导致业务不正常
方法:开启1个daemon线程,用于检测各线程的运行状态
第1步:业务线程启动时,向daemon线程注册
第2步:每隔1段时间,业务线程向daemon线程发送心跳消息
第3步:daemon线程定期检测已向它注册的业务线程是否已心跳超时,如果超时,则说明业务线程出现故障;此时,可以采取重启线程、进程或其它办法来恢复业务
第4步:业务线程退出时,向daemon线程反注册
其注册、反注册、上报等操作可抽象成1个类实现,daemon线程抽象成1个类来实现