Java下获取可用CPU数

1、获取cpu核心数:
Runtime.getRuntime().availableProcessors();
创建线程池:
Executors.newFixedThreadPool(nThreads);//nThreads为线程数
2、这个只要服务器内存够大,CPU核心数较多,处理数据比较强就好了,注意不要一下分配几千个线程,
可能会导致堆栈溢出的,这样程序就挂了,因为线程很费内存资源

用法一:判断所在服务器是否为多核,从而根据情况编写代码逻辑

/** True if on multiprocessor */
private static final boolean MP =
Runtime.getRuntime().availableProcessors() > 1;

/**
* Returns spin/yield value for a node with given predecessor and
* data mode. See above for explanation.
*/
private static int spinsFor(Node pred, boolean haveData) {
if (MP && pred != null) {
if (pred.isData != haveData) // phase change
return FRONT_SPINS + CHAINED_SPINS;
if (pred.isMatched()) // probably at front
return FRONT_SPINS;
if (pred.waiter == null) // pred apparently spinning
return CHAINED_SPINS;
}
return 0;
}

代码示例来自于JBoss Netty的LinkedTransferQueue

有一个叫sigar的工具,不仅可以看cpu的核心数,还可以看当前占用率,还有内存的使用率。功能很强大。我现在的监控系统就是使用这个东东的 

有一个比sigar更强大的工具,因为他就是依赖sigar做的,奉上:Hyperic HQ 开源版

 

时间: 2024-08-02 03:35:59

Java下获取可用CPU数的相关文章

java下获取目录大小有误差

问题描述 NewClass3.javapublicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException{Filefile=newFile("/home/user1");NewClass3obj=newNewClass3();longspace=obj.getDirSpace(file);System.out.println(space);}publiclonggetDirSpace(Filemydir){

java gif 帧数-java如何获取gif帧或者区分静态gif和动态gif

问题描述 java如何获取gif帧或者区分静态gif和动态gif java语音怎么获取gif图的帧数,或者有什么第三方jar可以做到? 另外程序如何区分静态的gif和动态的gif

在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历

问题描述 在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历 在文件数量过多的情况下java怎么获取文件夹下第一个文件并且不使用List遍历,防止内存溢出 解决方案 你看到的文件夹下面的第一个文件是操作系统的,如果用Java的API取出来,顺序是乱的,而且文件数量过多能多多少呢?上百个.?你可以只遍历文件名 ,或者在取文件的时候对文件进行一个排序,然后在取对应的文件内容. 解决方案二: 在java中如何遍历某个路径下的所有文件夹和文件java遍历文件夹中所有文件jav

linux java cpu-在linux下如何用java代码获取cpuid 主板id

问题描述 在linux下如何用java代码获取cpuid 主板id 在linux平台下,如何用java代码获取cpulid和主板id dmidecode可以使用sudo去获取这些信息 但java代码(Runtime)无法sudo执行dmidecode命令 请问要怎么解决

java如何获取网卡MAC、硬盘序列号、CPU ID

问题描述 java如何获取网卡MAC.硬盘序列号.CPUID 解决方案 解决方案二:c:以下代码可以取得系统特征码(网卡MAC.硬盘序列号.CPUID.BIOS编号)BYTEszSystemInfo[4096];//在程序执行完毕后,此处存储取得的系统特征码UINTuSystemInfoLen=0;//在程序执行完毕后,此处存储取得的系统特征码的长度//网卡MAC地址,注意:MAC地址是可以在注册表中修改的{UINTuErrorCode=0;IP_ADAPTER_INFOiai;ULONGuSi

Linux下获取代码文件名、代码所在行数及日期时间的C程序实现

一.概述 在实际的软件开发项目中,为了方便排查程序问题,要求在日志文件中输出日志信息所在的程序文件名及日志代码所在的行数.此外,某些软件还会要求将程序启动时的日期时间输出到日志文件中,方便跟踪软件运行状况. 本文介绍了Linux下获取代码文件名.代码行数及日期时间的C代码实现. 二.几个标准预定义宏简介 在C语言中,使用几个标准预定义宏,便可轻松实现获取代码文件名.代码行数及日期时间的功能. 这几个宏的定义如下(注意:前后都是两条连续的下划线): __FILE__:在源文件中插入当前源文件名.

java file获取目录硬盘己用空间与可用空间代码

java file获取目录硬盘己用空间与可用空间代码 获取指定目录空间大小   import java.io.File; public class SpaceChecker {   public static void main(String[] args) {     File[] roots = File.listRoots();     for (int i = 0; i < roots.length; i++) {       System.out.println(roots[i]);

解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解_Android

Android获取系统cpu信息,内存,版本,电量等信息 1.CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息.读取/proc/stat 所有CPU活动的信息来计算CPU使用率 下面我们就来讲讲如何通过代码来获取CPU频率: 复制代码 代码如下: package com.orange.cpu; import java.io.BufferedReader;import java.io.FileNotFound

Android获取设备CPU核数、时钟频率以及内存大小的方法_Android

本文实例讲述了Android获取设备CPU核数.时钟频率以及内存大小的方法.分享给大家供大家参考,具体如下: 因项目需要,分析了一下 Facebook 的开源项目 - Device Year Class. Device Year Class 的主要功能是根据 CPU核数.时钟频率 以及 内存大小 对设备进行分级.代码很简单,只包含两个类: DeviceInfo -> 获取设备参数, YearClass -> 根据参数进行分级. 下表是 Facebook 公司提供的分级标准,其中 Year 栏表