【发布时间】:2016-01-28 21:08:29
【问题描述】:
编辑:更新问题以准确解释我需要什么。
所以我将一个 javaagent 附加到一个进程使用
VirtualMachine vm = VirtualMachine.attach(processPid);
vm.loadAgent(jarPath);
现在我的代理在单独的线程上运行。现在我需要做的是在任何类加载之前加载我所有的转换器。附加进程中有一个线程加载所有类。我希望能够在正确的时间挂起这个线程(不会导致死锁)等待我的所有初始化(包括下载)然后注册我的转换器。在加载主类之前注册转换器很重要,这样我就可以根据需要修改类。
我目前只是通过它的名称获取线程并在其上调用suspend()。但这会导致死锁。有什么办法可以让那个线程等待我吗?
我尝试过的事情:
- 立即转换主类以添加
Thread.sleep(),但无法正常工作,因为我的代理在主类之后加载 - 使用
Thread.suspend会导致死锁。
【问题讨论】:
-
如果您要问一个您似乎知道非常棘手或不可能的问题,为什么不向我们提供所有信息 - 完整描述您想要完成的内容以及您需要的原因做你想做的事
标签: java multithreading thread-safety