博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java下获取可用CPU数
阅读量:5846 次
发布时间:2019-06-18

本文共 962 字,大约阅读时间需要 3 分钟。

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 changereturn FRONT_SPINS + CHAINED_SPINS;if (pred.isMatched()) // probably at frontreturn FRONT_SPINS;if (pred.waiter == null) // pred apparently spinningreturn CHAINED_SPINS;}return 0;}

代码示例来自于JBoss Netty的LinkedTransferQueue

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

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

 

转载于:https://www.cnblogs.com/softidea/p/4861232.html

你可能感兴趣的文章
qtcreator 错误error:stray'\243'in program
查看>>
工作之命令小总结(7):tail命令
查看>>
LVS+keepalived负载均衡
查看>>
YII分页显示数据
查看>>
Android下获取状态栏的高度
查看>>
Start Developing iOS Apps Today系列(六)
查看>>
UITableview中cell重用引起的内容重复的问题
查看>>
stm32 ADC使用 单通道 多通道
查看>>
Windows服务器配置与管理
查看>>
UVA 10003 Cutting Sticks
查看>>
DRP项目总结
查看>>
图的连通性——无向图的连通分量和生成树
查看>>
Linux安装更新JDK
查看>>
VM10.0上创建Windows server 2008 SP2,并且,安装loadrunner11
查看>>
抽象工厂
查看>>
linux下高可用mysql
查看>>
(15)Reactor 3 Operators——响应式Spring的道法术器
查看>>
r710 网卡驱动升级灰常蛋疼,现在在祈祷
查看>>
Microsoft Internet Explorer 数字错误漏洞
查看>>
添加 修改 删除
查看>>