Java 一个线程如何监视另一个线程?

Java 一个线程如何监视另一个线程?,java,multithreading,heartbeat,Java,Multithreading,Heartbeat,我试图理解“心跳线程”是如何工作的(从概念层面开始) “Thread-A”如何检查“Thread-B”的状态(在Java中),并相应地将状态更新到某个服务器(期望Thread-B处于活动状态)。线程A采用什么机制来获取线程B的状态?通常,一个线程只能通过调用 然而,许多线程可以是“活动”的,但处于一种没有做任何有用事情的状态。要检测到这一点,您需要让线程定期发布有关其活动的更新。然后,监视线程可以检测预期的活动是否不再发生 例如,批处理过程可能会在每次处理记录时更新共享计数器。另一个线程可以读取

我试图理解“心跳线程”是如何工作的(从概念层面开始)


“Thread-A”如何检查“Thread-B”的状态(在Java中),并相应地将状态更新到某个服务器(期望Thread-B处于活动状态)。线程A采用什么机制来获取线程B的状态?

通常,一个线程只能通过调用

然而,许多线程可以是“活动”的,但处于一种没有做任何有用事情的状态。要检测到这一点,您需要让线程定期发布有关其活动的更新。然后,监视线程可以检测预期的活动是否不再发生

例如,批处理过程可能会在每次处理记录时更新共享计数器。另一个线程可以读取此计数器,如果它在一段时间内没有增加,则假定进程已挂起

在生产系统中,传统的解决方案是通过调用度量库来指导流程。该库将向时间序列数据库收集器提供这些信息。通知和可视化系统将使用时间序列数据库中的数据发送警报或显示图表

软件建议与主题无关,但此堆栈的一个实例将是收集度量、收集和存储度量,并显示它们。

这有帮助吗。如果没有,您是否搜索过网站或此网站?我在那个话题上获得了很多成功。