加载时间字节码检测是否在 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
.
的线程中进行检测
因此:是的,重新转换发生在多个线程中。
所以,我制作了自己的 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
.
因此:是的,重新转换发生在多个线程中。