From 5965c682b45bdbe14647e577452353e397515e94 Mon Sep 17 00:00:00 2001 From: huoyo <1729913829@qq.com> Date: Sun, 26 May 2024 19:40:49 +0800 Subject: [PATCH] fix a bug about getCpuUsage from romanticmj:master --- .../cn/langpy/kotime/service/ThreadUsageService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/cn/langpy/kotime/service/ThreadUsageService.java b/src/main/java/cn/langpy/kotime/service/ThreadUsageService.java index 94d59c3..d778368 100644 --- a/src/main/java/cn/langpy/kotime/service/ThreadUsageService.java +++ b/src/main/java/cn/langpy/kotime/service/ThreadUsageService.java @@ -33,8 +33,13 @@ public class ThreadUsageService { Thread thread = threads[i]; ThreadInfo threadInfo = new ThreadInfo(); threadInfo.setId(thread.getId()); - threadInfo.setCpuUsage(BigDecimal.valueOf(threadMXBean.getThreadCpuTime(thread.getId())) - .divide(BigDecimal.valueOf(threadMXBean.getThreadUserTime(thread.getId())), 2, BigDecimal.ROUND_HALF_UP)); + BigDecimal threadCpuTime = BigDecimal.valueOf(threadMXBean.getThreadCpuTime(thread.getId())); + BigDecimal threadUserTime = BigDecimal.valueOf(threadMXBean.getThreadUserTime(thread.getId())); + if (threadUserTime.doubleValue() > 0) { + threadInfo.setCpuUsage(threadCpuTime.divide(threadUserTime, 2, BigDecimal.ROUND_HALF_UP)); + }else { + threadInfo.setCpuUsage(BigDecimal.ZERO); + } threadInfo.setName(thread.getName()); threadInfo.setClassType(thread.getClass().getSimpleName()); threadInfo.setState(thread.getState().name());