java cpu核数_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 开源版

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值