今天,在使用eclipse时。每当我打开junit测试用例文件时,我的eclipse都会进入挂起状态。对此进行了分析。
打开文件之前
~$ ps -o thcount 5458
THCNT
42
打开文件后。
$ ps -o thcount 5458
THCNT
195
我发现线程使用率突然飙升。
我使用jstack -l
进行了线程转储以进行调试。我发现大多数线程都处于BLOCKED
状态。
线程转储:
在此处发布线程转储使我的问题变得难以理解。这是threaddump https://docs.google.com/document/d/11nPbEkQMg-FMB9lPwvDK-ShNTygDN2biDUSPHMicdm4/edit?pli=1。
谢谢你, 坎南。
答案 0 :(得分:0)
看起来这是你的问题
你有自定义类加载器吗?所有被阻止的线程都在尝试加载类。
com.instantiations.assist.eclipse.junit.execution.core.UserDefinedClassLoader)
at com.instantiations.assist.eclipse.junit.execution.core.UserDefinedClassLoader.loadClass(UserDefinedClassLoader.java:62)
- locked <0x00000007efc97ea0> (a com.instantiations.assist.eclipse.junit.execution.core.UserDefinedClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at com.zmedia.accounts.AccountsProto$ZAID$ZUID$UserTicket$ServiceTicket.initFields(AccountsProto.java:51314)
at com.zmedia.accounts.AccountsProto$ZAID$ZUID$UserTicket$ServiceTicket.<clinit>(AccountsProto.java:52130)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at com.zmedia.resource.ResourceType.<init>(ResourceType.java:28)
at com.zmedia.resource.ResourceType.loadResources(ResourceType.java:63)
at com.zmedia.resource.URI.init(URI.java:859)
at com.zmedia.resource.URI.<init>(URI.java:87)
at com.zmedia.resource.URI.<init>(URI.java:81)
at com.zmedia.accounts.Accounts$AccountURI.<init>(Accounts.java:13142)
at com.zmedia.accounts.Accounts.getAccountURI(Accounts.java:13132)
at com.zmedia.accounts.api.AccountTester.testGrandChildinSubresources(AccountTester.java:841)