加载时间字节码检测是否在 Java 中并行完成?

Is load time Bytecode Instrumentation done in parallel in Java?

所以,我制作了自己的 Java 代理,其中有一个 ClassFileTransformer 实现了 transform 方法。我观察到这个方法是在不同的线程上调用的。 我用 Thread.currentThread() 检查了它 这些是不同的线程:

Thread[background-preinit,5,main]
Thread[main,5,main]
Thread[cluster-ClusterId{value='...', description='null'}-localhost:27017,5,main]

A ClassFileTransformer 应用在第一次加载 class 的线程中。在重新转换的情况下,所有加载的 classes 都在调用 Instrumentation.retransformClasses.

的线程中进行检测

因此:是的,重新转换发生在多个线程中。