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

相关推荐
我命由我123453 分钟前
Java 开发 - Objects 的 requireNonNull 方法
java·服务器·开发语言·后端·学习·java-ee·学习方法
想做后端的前端4 分钟前
Lua的热更新
开发语言·lua
心思这就是7 分钟前
sql注入
数据库·sql
福赖12 分钟前
《微服务即使通讯中redis的作用》
数据库·redis·缓存
隐退山林16 分钟前
JavaEE初阶:多线程进阶
java·开发语言
lead520lyq18 分钟前
Golang Protoc Grpc实现微服务通信
开发语言·微服务·golang
BHXDML19 分钟前
Python:(一)变量、类型与 f-string —— 数据的载体
开发语言·python
JMchen12319 分钟前
Android剪切板工具类ClipBoardUtil:简化剪切板操作
android·java·移动开发·android studio
自己的九又四分之三站台20 分钟前
向量数据库PGVector实操
数据库
sa1002721 分钟前
walmart沃尔玛关键词商品搜索实现逻辑
数据库·python