首页 > 解决方案 > 加载时间字节码检测是否在 Java 中并行完成?

问题描述

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

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

标签: javamultithreadinginstrumentationjava-bytecode-asmjavaagents

解决方案


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

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


推荐阅读