import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
/**
* @author:飞羽
* @date:2023/2/2 10:22
* @Description:
*/
public class Main {
//要注意这个osmxb是com.sum的,而不是java.lang的
private static OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
public static void main(String[] args){
//当前服务器总内存,单位B
System.out.println(osmxb.getTotalPhysicalMemorySize());
//当前服务器空闲内存,单位B
System.out.println(osmxb.getFreePhysicalMemorySize());
//当前CPU使用率,0.86这样的
System.out.println(osmxb.getSystemCpuLoad());
}
}
注意,这个是获取本机的负载,如果想获取的是其他机的负载,怎么办?
解决方案:在其他机上运行这个程序,并将获取到的负载上报给你的本机。
原理其实很自然,现实生活中,如果你想知道一个房间的大小,当然是要走到这个房间里面才知道。
如果你不想进入别的房间,又想知道别的房间的大小,那自然就是派别人进去看一下,然后把大小上报给你,不就解决了?