java - 确定性类加载 - 加载类的控制线程
问题描述
我正在研究 JVM 中确定性故障再现的研究项目,并且正在努力使不同应用程序运行之间的类加载具有确定性。我的意思是我想确保总是同一个线程加载一个在以前的运行中加载它的类。
假设我在第一次运行时记录了哪个线程加载了给定的类(这是最简单的部分)并将该信息存储在某处。然后我想控制没有其他线程将在任何后续应用程序运行中加载该类(例如,通过在它们导致加载类事件之前停止它们)。
虽然我设法通过字节码修改或 JVMTI 完成了大部分事情,但我不确定如何解决这个问题,因为加载是由 JVM 控制的,而且显然没有字节码说before load class
,也不是正确的 JVMTI 事件。
我愿意接受任何建议,无论多么“怪异”。因此,即使使用非公开的 JVM 内部也可以;C/C++ 或 Java。虽然不知道在哪里挂钩。
解决方案
推荐阅读
- c# - 基于用户的 ASP.NET Core 5 JwtBearer 动态密钥
- c# - 如何将项目添加到命名元组
- angular - 无法在 Teamcity 构建中使用业力运行单元测试。错误:“设置“PUPPETEER_SKIP_DOWNLOAD”环境变量以跳过下载。
- javascript - 插件开发人员在 Wordpress 中发送 AJAX 请求的最佳实践是什么
- entity-framework-core - 我的第二个上下文尝试进行第一个上下文所做的所有更改
- javascript - NextJs getStaticPaths 未呈现适当的页面,显示 404 错误
- java - 编写一个Java程序,将句子中每个单词的首字母大写
- ethereum - 如何增加 GassLimit(以太坊 PoA)?
- image - 在android和ios xamarin表单中单击或点击图像时如何显示数字(1,2,3)
- linux - 在 Centos8 中找不到 virtio_pci.ko(或 virtio-pci.ko)