之前分享过arthas快速入门视频演示,自己打算把这个系列继续做下去。工具还是非常强大的,适用范围也非常的广。在性能测试和性能分析以及故障诊断方面有着非常大的应用。然后和这个工具和JVM的一些工具搭配起来会非常非常地有用!如果是想做Java服务端的性能测试的话,我觉得这一定是一个绕不过去的一个神器。

你今天给大家分享啊,arthas进阶中,比较重要的命令thread。它主要负责去查看嗯 Java 虚拟机里面关于线程的信息。比如:当前JVM虚拟机的线程概况、线程的运行状态、线程的优先级等等。当然他也可以查看线程的具体信息,比如:线程的堆栈、线程使用 CPU 的情况线程的死锁,线程使用对象锁或者说是类锁的状态。还可以根据线程的运行状态进行分类统计,你也可以通过设置统计间隔来达到。对线程的运行消耗 CPU 的情况的一个监控。

官方文档地址如下:https://alibaba.github.io/arthas/

arthas 进阶 thread 命令

由于我并没有使用官方的演示Demo,自己随手写了一个,下面是代码:

package com.fun

import com.fun.frame.httpclient.FanLibrary

class sdsync extends FanLibrary {

    public static void main(String[] args) {

        Thread thread1 = new Thread({
            1000.times {
                test(it + 10000)
            }
        })
        Thread thread2 = new Thread({
            1000.times {
                test(it + 20000)
            }
        })
        Thread thread3 = new Thread({
            1000.times {
                test(it + 30000)
            }
        })
        Thread thread4 = new Thread({
            1000.times {
                test(it + 40000)
            }
        })
        thread1.start()
        thread2.start()
        thread3.start()
        thread1.join()
        thread2.join()
        thread3.join()

        testOver()
    }

    static void test(int i) {
        output(Thread.currentThread().getName() + "开始!----$i")
        synchronized (sdsync.class) {
            sleep(1000)
        }
        output(Thread.currentThread().getName() + "结束!-----${i}")
    }
}


技术类文章精选

无代码文章精选


↙↙↙阅读原文可查看相关链接,并与作者交流