如何在Java应用程序中获得确切的执行点?

如何在Java应用程序中获得确切的执行点?,java,multithreading,serialization,deserialization,fault-tolerance,Java,Multithreading,Serialization,Deserialization,Fault Tolerance,我想在一个运行的java应用程序中,获得运行代码的确切执行点或行 我正在研究一些容错方法,并尝试实现一些解决方案。我正在将线程对象序列化为文件,并强制关闭我的应用程序。我的目标不是从“run”方法的开头重新运行可序列化线程,而是从序列化时的行重新运行 问题是:在运行的线程中,在调用“pause”方法后,获取暂停代码的行。在此之后,我想实例化一个it类型的新线程,并从该行运行 有人知道我该怎么做吗?您需要的是一个可序列化的延续。然而,我所听说的解决办法是: 不是一个完整的解决方案 维护足够的信息

我想在一个运行的java应用程序中,获得运行代码的确切执行点或行

我正在研究一些容错方法,并尝试实现一些解决方案。我正在将线程对象序列化为文件,并强制关闭我的应用程序。我的目标不是从“run”方法的开头重新运行可序列化线程,而是从序列化时的行重新运行

问题是:在运行的线程中,在调用“pause”方法后,获取暂停代码的行。在此之后,我想实例化一个it类型的新线程,并从该行运行


有人知道我该怎么做吗?

您需要的是一个可序列化的延续。然而,我所听说的解决办法是:

  • 不是一个完整的解决方案
  • 维护足够的信息非常缓慢,您可以随时停止它

更好的方法是使用一个状态机,您可以在其中记录所有输入,从而可以通过重播这些事件在任何时候重新创建应用程序

您不能在代码中的任意点开始(或停止)执行。但是,如果线程正在执行并暂停,当它返回执行时,它将从停止的位置开始。我能得到这个信息吗?听起来可能是个问题。您试图解决的更高级别的问题是什么?您打算如何通过调用pause()方法来“暂停”线程?您是否会定期调用中断,或者让运行的线程检查暂停标志?在这种情况下,线程已在检查暂停标志时停止。我们错过了什么?