arthas 监控线程池相关对象

具体代码,需要设置类的变量,不能设置方法的局部变量

复制代码
package com.xxx.vman.service;

import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

@Slf4j
public class Test2 {

    private static Semaphore semaphore = new Semaphore(3);
    private static ThreadPoolExecutor executorService = new ThreadPoolExecutor(10,50,60, TimeUnit.SECONDS,new LinkedBlockingQueue<>(200));

    @SneakyThrows
    static void exec(){
        try {
            semaphore.acquire();
            log.info("执行exec方法" + Thread.currentThread().getName());
            Thread.sleep(310);
        } finally {
            semaphore.release();
        }
    }

    @Test
    @SneakyThrows
    public void test(){
        for (;;){
            Thread.sleep(100);
            executorService.execute(() -> exec());
        }
    }

}

arthas监控查看executorService属性命令

ognl -x 3 '@com.xxx.vman.service.Test2@executorService'

查看Test2类对象的属性命令

vmtool -x 3 --action getInstances --className com.xxx.vman.service.Test2 --express 'instances[0]'

相关推荐
Alsn86几秒前
30.登录用户名密码 RSA 加密传输-后端为java
java·开发语言
q行几秒前
MySQL学习日志--表之间的关系
数据库·学习·mysql
老王熬夜敲代码2 分钟前
C++的decltype
开发语言·c++·笔记
益达3213 分钟前
IDEA 整合 Git 版本控制:提交、分支管理与冲突解决实操
java·intellij-idea
lxp1997414 分钟前
PHP框架自带队列--更新中
开发语言·php
MoonBit月兔6 分钟前
海外开发者实践分享:用 MoonBit 开发 SQLC 插件(其三)
java·开发语言·数据库·redis·rust·编程·moonbit
问道飞鱼7 分钟前
【Rust编程知识】在 Windows 下搭建完整的 Rust 开发环境
开发语言·windows·后端·rust·开发环境
天呐草莓10 分钟前
企业微信运维手册
java·运维·网络·python·微信小程序·企业微信·微信开放平台
jllllyuz11 分钟前
C# 面向对象图书管理系统
android·开发语言·c#
小兔崽子去哪了11 分钟前
Java 登录专题
java·spring boot·后端