加载时间Bytecode Instrumentation是在Java中并行完成的吗?

问题描述 投票:0回答:1

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

Thread[background-preinit,5,main]
Thread[main,5,main]
Thread[cluster-ClusterId{value='...', description='null'}-localhost:27017,5,main]
java multithreading instrumentation java-bytecode-asm javaagents
1个回答
2
投票

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

因此:是的,重构发生在多线程中。

© www.soinside.com 2019 - 2024. All rights reserved.