java多线程-基础篇(二)---线程的优缺点与线程的Dump查看

目录

        一 多线程的优势与风险

二 线程的监视

2.1 Jvisualvm  JDK自带的

2.2 Jstack工具 也是JDK自带的

2.3 java Mission Control 简称JMC JDK1.8后自带


                     

线程的基础定义与概念性的问题 这里就不复述了

今天主要讲线程的监视与多线程编程的优势和风险,我们用多线程有什么优点, 有什么风险

其实优点很多都清楚 主要是关键是说不全,还是要记住的东西,记录下以便回顾吧 因为有些东西就算很明白了 长久不用也是会忘的

一 多线程的优势与风险

优势:

     1 提高系统的吞吐率

     2. 提高响应性

    3. 充分利用多核处理器资源

    4. 最小化对系统资源的使用

风险与难点

  1. 线程的安全问题

          线程的理论与设计比较重要 不然容易出问题 难以排除

     2 线程的活性问题

     3 上下文切换

      线程数量控制在多少可以减少上下文的切换,每个线程都有个上下背景文,里面有很多线程相关的信息,每次切换也是不断内存拷贝 次数过多也是很影响系统资源与性能的

    4 可靠性

二 线程的监视

      要灵活的运行好多线程还是很有技术考验的,线上真实的java系统运行时往往有上百个线程在运行,必要的监控与问题排查工具也是必不可少

获取与查看线程的转储(Thread Dump),一般线程转储是保存那一刻的该线程的线程信息

相关的工具

       Jvisualvm,jstack, JMC, (linux)kill -3 PID , (windows)CTRL+ /,  (linux)CTRL+break组合建

线程我们就来操作一遍 笔者是windows系统

Jvisualvm,jstack, JMC 是跟平台不相关的

2.1Jvisualvm查看Thread Dump 

JDK自带

安装的JDK就有,直接在系统中搜索就可以,打开后的样子如下:

查看下我们IDEA的监控信息 可以看到守护线程和实际线程 44个

在应用程序下面有个线程DUMP 目前没挂过 dump不了

好吧要选中VsualVM即可  然后可以堆dump与线程dump

这里分析不展开了 只是简单操作下 后续讲分析吧

 

2.2 Jstack工具 查看Thread Dump 

也是JDK自带的

使用方式为 jstack –l PID

那如何知道PID先要使用JPS工具 执行结果如下

 

看4500 这个吧 jstack –l 4500

What?  好吧 系统装了多个JDK版本 不一致windbg找不到相应的系统符号表吧

不整了 演示一下 效果一样

2.3 java Mission Control 简称JMC查看Thread Dump 

 

JDK1.8后自带

直接系统搜索 java Mission Control

点击了一通 总算找到了 更为详细吧 但是使用起来比较麻烦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值