java - 暂停暂停的线程并在 JVM 重新启动后恢复它
问题描述
嗨,我正在寻找一种方法来存储暂停的线程并在 JVM 重新启动后恢复它。
任何线索都将非常明显。
重启后线程名、线程组不必相同。如果我们在 JVM 重新启动之前将其恢复,则要考虑的事物已恢复应遵循相同的步骤。所有变量都应存储在哪个线程处理或访问它。
解决方案
没有办法做到这一点。忘记任何持久线程的想法。这是任何已知的生产质量 JVM 都无法实现的。
您最好将要完成的任务队列简单地存储在事务数据库(或消息队列系统)中,然后编写可重新启动的任务代码。如果单个任务花费的时间足够长以至于无法接受重新启动任务......将任务拆分为较小的任务,或实施任务检查点。
(您真正想要的是一个实现正交持久性并且能够持久化线程并且能够通过活动查询持久化数据库连接的 JVM。据我所知,这些东西在任何 JVM 实现中都不可用,更不用说他们全部。)
推荐阅读
- python - 如何在python中实现稀疏矩阵
- python - 如何使 python pyinstaller 可执行文件可共享
- python - Sphero - OverflowError:Python int 太大而无法转换为 C long
- java - 如何解决 Intellij Idea 的“无法启动 Scala 编译服务器”?
- node.js - 从迅雷客户端发送承载授权请求时,标题内容[“授权”]中的字符无效
- python - 将 Seaborn Plot 保存为 PDF 会移动颜色条框架
- ckeditor - CKEditor 4 自定义编辑器显示但无法正常工作
- flutter - 无法使用另一个小部件中存在的列表
- django - 输出中的 Django 新行
- amazon-s3 - 如何限制 Visual Studio AWS Explorer 中列出的 S3 存储桶