下面的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

java线程使用不当,java多线程使用不当造成的问题相关推荐

  1. java 线程面试题_JAVA多线程面试题(一)

    1.进程和线程的区别 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进 ...

  2. java线程代码实现_Java 多线程代码实现讲解

    作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程.那么如何提供给 Java 我们要线程执行的代码呢? ...

  3. java线程池 锁_java多线程——锁

    这是多线程系列第四篇,其他请关注以下: 如果你看过前面几篇关于线程的文字,会对线程的实现原理了然于胸,有了理论的支持会对实践有更好的指导,那么本篇会偏重于线程的实践,对线程的几种应用做个简要的介绍. ...

  4. java线程下载文件_Java多线程下载文件实例详解

    本文实例为大家分享了Java多线程下载文件的具体代码,供大家参考,具体内容如下 import java.io.File; import java.io.InputStream; import java ...

  5. java 线程_理解java多线程

    树枝头玩魔法班卓琴弦乐器的生物与发光的蝴蝶,数字艺术风格,插画绘画creature with java多线程 1.实现Runnable接口相比于继承Thread类: (1)适合多个相同的程序代码的线程 ...

  6. java线程怎么用_Java多线程基本使用

    一.概念 1.进程 1.1进程:是一个正在进行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 1.2线程:就是进程中一个独立的控制单元,线程在控制着进程的执行,一 ...

  7. java线程集合点_Java多线程学习笔记(三) 甚欢篇

    使人有乍交之欢,不若使其无久处之厌 <小窗幽记>很多时候,我们需要的都不是再多一个线程,我们需要的线程是许多个,我们需要让他们配合.同时我们还有一个愿望就是复用线程,就是将线程当做一个工人 ...

  8. java+线程安全的hash,多线程下HashMap安全问题-ConcurrentHashMap解析

    Java1.5 引入了 java.util.concurrent 包,其中 Collection 类的实现允许在运行过程中修改集合对象.实际上, Java 的集合框架是[迭代器设计模式]的一个很好的实 ...

  9. 苹果系统手机调用java线程出错_在多线程Java应用程序中调用已编译的m-file(.jar)时出错...

    我有一个简单的M文件 function [fRate,Height,Width] = media(filename) obj = mmreader(filename); fRate = obj.Fra ...

  10. java线程堆栈nid.tid_java多线程死锁 Java问题定位之Java线程堆栈分析(2)

    从上面的main线程看,线程堆栈里面的最直观的信息是当前线程的调用上下文,即从哪个函数调用到哪个函数(从下往上看),正执行到哪一类的哪一行,借助这些信息,我们就对当前系统正在做什么一目了然. 另外,从 ...

最新文章

  1. 【区块链Go语言实现】区块链基本原型
  2. 小清新简约风个人简历PPT模板
  3. PHP算法之四大基础算法
  4. 【PC工具】更新在线流程图绘制工具bullmind,免费云存储流程图绘制,可直接粘贴图片...
  5. Windows 服务全攻略(1)
  6. JPA中实现单向一对多的关联关系
  7. MCtalk教育快报 | 0827
  8. springSecurity源码分析-springSecurityFilterChain
  9. 22行代码AC——习题5-6 对称轴(Symmetry,UVa1595)——解题报告
  10. python中三种分支结构的_python 运算符与分支结构
  11. (兔子繁殖问题)有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问32个月过后的兔子总数为多少?...
  12. ubuntu tomcat上传目录权限_等了 3 年,Ubuntu Studio 终于有权限上传更新包
  13. The Clean Architecture--一篇很不错的关于架构的文章
  14. c 调用matlab.m文件,ubuntu系统下C++调用matlab程序的方法详解
  15. 20135219洪韶武——信息安全系统设计基础第四周学习总结
  16. Android 控件系列篇
  17. [总结] Min-Max容斥学习笔记
  18. java培训一般有哪些课程_java培训有哪些课程
  19. P4313 文理分科 详细理解
  20. 这位毁誉参半的政治名嘴,竟然彻底改变了计算机编程

热门文章

  1. php设计模式 命令行模式,[设计模式]PHP设计模式之命令行模式
  2. Python中fastapi构建的web项目使用pyinstaller打包为exe文件
  3. 使用apache的poi生成本地Excel文件(一)
  4. Layui--颜色选择器layui.colorpicker
  5. JAVA输出希腊union_Java Geometry.union方法代码示例
  6. access中判断回文的代码_前端也来点算法(TypeScript版) | 2 - 回文数和回文链表
  7. python 函数参数self_Python类中self参数用法详解
  8. 【编程帮助】python中字符串前的 r、b、u、f 的含义及用法
  9. 云服务器选ssd还是hdd_SSD和普通硬盘对比?SSD到底好不好?看超变态测试
  10. oracle清理trace、alert、aud、listener等日志文件