当前位置:   article > 正文

java线程使用不当,java多线程使用不当造成的问题

at java.lang.thread.run(thread.java:745) hello supermap === tabularview!! er

下面的thread dump是在CPU使用高的情况下采集的jstack的数据。

"pool-19-thread-50" prio=10 tid=0x00007fd1b8001000 nid=0x11bb2 runnable [0x00007fd41f018000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)

at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)

at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)

at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)

- locked <0x0000000790724f88> (a sun.nio.ch.Util$2)

- locked <0x0000000790724f98> (a java.util.Collections$UnmodifiableSet)

- locked <0x0000000790724f40> (a sun.nio.ch.EPollSelectorImpl)

at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)

at weblogic.socket.NIOSocketMuxer$NIOInputStream.readInternal(NIOSocketMuxer.java:815)

at weblogic.socket.NIOSocketMuxer$NIOInputStream.read(NIOSocketMuxer.java:759)

at weblogic.socket.NIOSocketMuxer$NIOInputStream.read(NIOSocketMuxer.java:742)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)

at java.io.BufferedInputStream.read(BufferedInputStream.java:334)

- locked <0x00000007aac27988> (a java.io.BufferedInputStream)

at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:227)

at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:149)

at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:514)

at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:434)

- locked <0x00000007aac23230> (a weblogic.net.http.SOAPHttpURLConnection)

at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:37)

at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1078)

at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:260)

at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1513)

at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1486)

at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1305)

at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)

at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:623)

at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)

- locked <0x00000007aac221c0> (a org.apache.cxf.phase.PhaseInterceptorChain)

at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:541)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)

at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)

at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)

at com.sun.proxy.$Proxy270.sendWorkList(Unknown Source)

at com.comtop.soa.tbi.client.csgii.workcalendar.SOAServicePort_SOAService_Client.sendWorkList(SOAServicePort_SOAService_Client.java:67)

at com.gg.device.prodplan.plan.facade.internal.WorkCalendarFacade.sendWorkPlanDataToCSG(WorkCalendarFacade.java:176)

at com.gg.device.prodplan.plan.facade.internal.WorkCalendarFacade

FastClassByCGLIB
2a1fd51c.invoke()

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:698)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)

at com.gg.monitor.MonitorAspect.aroundAllMethod(MonitorAspect.java:87)

at sun.reflect.GeneratedMethodAccessor497.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)

at com.comtop.sproc.core.exceptionhandler.aop.SprocFacadeExceptionAspect.doAround(SprocFacadeExceptionAspect.java:45)

at sun.reflect.GeneratedMethodAccessor493.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)

at com.gg.device.prodplan.plan.facade.internal.WorkCalendarFacade

EnhancerByCGLIB
5dfd8226.sendWorkPlanDataToCSG()

at com.gg.device.prodplan.controller.plan.ProdPlanInfoMulController$1.run(ProdPlanInfoMulController.java:1630)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Locked ownable synchronizers:

- <0x000000073808b5f0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

Locked ownable synchronizers:这里值为None,说明当前线程没有处于同步块内,反之在。

查看堆栈代码,是业务代码使用了多线程,生成线程的数量的规则是查看服务器CPU空闲数量生成。而部署的规则是一台服务器上部署了10个节点,如果只是部署一个节点是可以这么干。将线程调整为2个,调整代码后,有137个下列的线程,只有37个了。

"pool-19-thread-49" prio=10 tid=0x00007fd2d0001800 nid=0x11b4e waiting on condition [0x00007fd41f11b000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

- parking to wait for  <0x00000006f266ed20> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)

at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)

at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Locked ownable synchronizers: - None

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/142669
推荐阅读
相关标签
  

闽ICP备14008679号