代码之家  ›  专栏  ›  技术社区  ›  Akhil Surapuram

暂停挂起的线程并在JVM重新启动后恢复它

  •  0
  • Akhil Surapuram  · 技术社区  · 7 年前

    Hie,我正在寻找一种方法来存储挂起的线程,并在JVM重新启动后恢复它。

    任何线索都会非常可观。

    重启后,线程名称、线程组不必相同。如果我们在JVM重新启动之前恢复它,那么在需要考虑的事情上恢复应该遵循相同的遵循。所有变量都应该存储在哪个线程处理或访问它。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Stephen C    7 年前

    这是不可能的。忘记任何坚持线程的想法。任何已知的生产质量JVM都无法实现这一点。

    最好将要执行的任务队列存储在事务数据库(或消息队列系统)中,然后编写可重启的任务代码。如果单个任务需要足够长的时间来重新启动任务是不可接受的。。。将任务拆分为更小的任务,或实现任务检查点。

    (您真正想要的是一个JVM,它实现了正交持久化,能够持久化线程,并且能够持久化带有活动查询的数据库连接。据我所知,这些东西在任何JVM实现中都不可用,更不用说它们了。)