java程序使用多线程,能用到cpu的多个核心吗?
网上看了有说能的,有说不能的,最简单的就是自己写个例子去验证。
1,示例1(先上100线程):
public class MyThread1 extends Thread {
public void run () {
for(int i=0;;i++){
System.out.println(this + ":" + i);
}
}
public static void main(String[] args){
for (int i =0;i<100;i++) {
MyThread1 myThread = new MyThread1();
myThread.start();
}
}
}
结果出现了,发现该java进程的cpu使用量小于1个核心,大该只占1个核心的60%左右。
不服,上10000个线程,发现cpu的使用量也不过只占1个核心的80%左右。
什么原因,再看示例2.
2,示例2(上3个线程):