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

相关推荐
amIZ AUSK9 小时前
实操解决Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题
数据库·postgresql
Pkmer9 小时前
古法编程: 深度解析Java调度器Timer
java·后端
BduL OWED9 小时前
将 vue3 项目打包后部署在 springboot 项目运行
java·spring boot·后端
gmaajt9 小时前
Golang怎么读取环境变量_Golang如何用os.Getenv获取系统环境变量【基础】
jvm·数据库·python
2601_949194269 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
棋子入局9 小时前
C语言制作消消乐游戏(4)
c语言·开发语言·游戏
傻啦嘿哟9 小时前
Python 文件批量处理:重命名/备份/同步运维实战指南
linux·数据库·github
m0_596406379 小时前
CSS复杂组件如何拆解_使用Sass将组件逻辑细化为小文件
jvm·数据库·python
cyber_两只龙宝9 小时前
【Oracle】 Oracle之SQL的子查询
linux·运维·数据库·sql·云原生·oracle
riNt PTIP10 小时前
怎么下载安装yarn
java