环境:Linux Redhat 5.4 32位,CPU8核
Java代码如下:
class Loop {
public static void main(String[] args) {
for(int i=0;i<7;i++)
new Thread(new Runnable(){
public void run() {
while(true);
}
}).start();
while(true);
}
}
编译后启动,输入top命令可看到:
Tasks: 215 total, 1 running, 214 sleeping, 0 stopped, 0 zombie
Cpu(s):100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16580348k total, 7986304k used, 8594044k free, 577356k buffers
Swap: 16777208k total, 0k used, 16777208k free, 5988556k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18833 flow 18 0 1176m 18m 7620 S 798.5 0.1 2:11.62 java
按1后可显示每个CPU核的情况:
top - 15:02:39 up 15 days, 3:40, 4 users, load average: 7.17, 2.92, 1.24
Tasks: 215 total, 1 running, 214 sleeping, 0 stopped, 0 zombie
Cpu0 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 99.7%us, 0.3%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 99.3%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.3%hi, 0.3%si, 0.0%st
Cpu4 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16580348k total, 7986616k used, 8593732k free, 577396k buffers
Swap: 16777208k total, 0k used, 16777208k free, 5989628k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18833 flow 18 0 1176m 18m 7620 S 793.3 0.1 9:44.87 java
由此可见8个线程占用了8个CPU核的资源,资源达到100%。
我们修改下代码,改成:
class Loop {
public static void main(String[] args) {
while(true);
}
同样按top命令,可看到就只有1个CPU达到100%(注某一时刻可能是核1,过会可能是核2),其他几个CPU核均很小。
由此可见,1个线程只会使用1个cpu核资源,多线程可充分利用物理资源。
看过Mina的童鞋应该知道,Mina的推荐的IoProcessor线程池IO线程数为核数+1就是这个原因。
分享到:
相关推荐
取进程CPU占用率纯源码,包括取CPU核数(可用作绑定CPU)。@xiaoxiaofengye。
测试消耗CPU和内存资源...3 ---- 单位核数,占用3个核, 如果一共8个核,那么大概占用 3/8=37.5%的cpu资源 1024 ---- 单位M,表示 占用 内存 1G 30 ---- 单位秒,表示 持续运行30秒,然后脚本自动释放CPU资源和内存资源
linux下判断CPU的核数,有实际的例子。详解比较全面
高性能服务器CPU核数调整研究.pdf
物理cpu数量,在Linux上查看/proc/cpuinfo,其中的physical id就是每个物理CPU的id,有几个不同的physical id就有几个物理CPU。 grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l cpu核数: 每颗物理CPU可以有1...
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep ...
服务器偷来的源码。。加了ddos+cpu核数+开机时间..
近在项目里面使用了多线程处理技术,感觉对数据很多批量处理效果蛮好,所以在这里记录下来,给自己一个日子,也分享给大家! 1.首先根据条件得到你的数据集合dataList(此处用dataList表示) 1.1个人觉得如果...
6、CPU核数 7、显卡型号 8、显卡显存 9、总内存 10、jdk版本 11、mysql 版本 12、redis 版本 13、python 版本 14、GCC 版本 15、CUDA 版本 后续有什么可以继续加。大家也可以留言,需要什么我会找时间加到里面,并...
·【单核cpu】:在外部看,所有任务都在同时执行,但是实际上,在cpu上,任务是按照串行依次运行 ·【多核cpu】:多个进程任务可以并行,但是单核,多进程只能串行 ·边听音乐,边工作其实也是cpu在不断切换 5.多...
多线程 目录 进程 进程的了解 线程 什么是线程 线程的组成 线程的创建 线程的状态 线程的方法 线程的安全问题 1.进程 1.1.进程的了解 简单的来说进程就是运行中的程序,简称为进程。 单核CPU在任意一个时间节点上,...
获取主机信息,以“IP地址 主机名 CPU型号 主频 核数 物理内存总大小 磁盘名称 容量”格式输出csv。内附使用说明。
机器的CPU逻辑核数检查jar包
Linux多核CPU控制启动核数.pdfLinux多核CPU控制启动核数.pdf
ansys多cpu并行计算设置.pdf
Linux查看物理CPU个数、核数、逻辑CPU个数总核数 = 物理CPU个数 X 每颗物理CPU的核数总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核
配套博客参考:https://blog.csdn.net/passion_l/article/details/125068163?spm=1001.2014.3001.5502
1.公式 2.查看物理CPU个数 3.查看每个物理CPU中core的个数(即核数) 4.查看逻辑CPU的个数