gpt4 book ai didi

java - 挂线程 java.lang.ClassLoader.findBootstrapClass

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:02:42 26 4
gpt4 key购买 nike

我的 J2EE 应用程序执行缓慢。我们在那种情况下进行了 Thead 转储,发现以下线程在多个转储中是 Runnable 并且已经锁定了一些监视器,这导致其他线程(直接或间接)等待锁定。

at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:891)
at java.lang.ClassLoader.loadClass(ClassLoader.java:301)
- locked [0x9747c360] (a sun.misc.Launcher$ExtClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
- locked [0x9747c318] (a sun.misc.Launcher$AppClassLoader)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
- locked [0x9747c318] (a sun.misc.Launcher$AppClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
.....

您能否建议该线程不移动并让其他线程工作?

最佳答案

为什么您的应用程序要加载这么多类(锁在 loadClass 中)?预计您的应用仅在初始化和预热期间加载已卸载的类。

因此,我怀疑正在发生以下情况之一:

  • 您正在创建许多不同的动态代理类,而不是尝试重用它们。
  • 您不必要地创建了很多类加载器,或者至少滥用了它们。
  • 您正在启动和终止多个并行 JVM。

不用说,这些东西都是非常昂贵的,应该尽可能避免。

关于java - 挂线程 java.lang.ClassLoader.findBootstrapClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com