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]'

相关推荐
游乐码3 分钟前
c#索引器
开发语言·c#
专注VB编程开发20年18 分钟前
c# CSRedisCore vb.net清空所有键值
数据库·oracle
程序边界18 分钟前
数据库MySQL兼容版权限隔离深度体验:从兼容到安全增强的实战之路
数据库·mysql·安全
Victoria.a20 分钟前
Mysql基础
数据库·mysql
汤姆yu32 分钟前
基于springboot的健身爱好者打卡与互动交流系统
java·spring boot·后端
jaysee-sjc44 分钟前
十三、Java入门进阶:异常、泛型、集合与 Stream 流
java·开发语言·算法
Maggie_ssss_supp1 小时前
Linux-python
开发语言·python
百锦再1 小时前
Java Map常用方法和实现类深度详解
java·开发语言·spring boot·struts·kafka·tomcat·maven
_codemonster1 小时前
JavaWeb开发系列(九)idea配置jdbc
java·ide·intellij-idea
Hx_Ma161 小时前
测试题(六)
java·tomcat·mybatis