测试电脑是否真实多核CPU
在CPU的描述上现在多数看到的是多核心/多内核,看上去就像是多CPU的样子。但核心是有分真实核心和虚拟核心。如果是真实的多核心,多线程是能够并行。如果不是多核心,多线程就只能够并发。
这里就直接采用多线程的应用程序来实际运行一下测试一下电脑的CPU是否真实的多核心。反正现在的CPU都是写着多核心/多内核,也没有几个不是多核心/多内核的,咋一看都模糊了CPU的数量。(当然也有很多其它的更直接的可视方法,但这里就只关注利用多线程应用程序的实测)
就简单的写一段多线程的程序。
public static void main(String[] args) {for (int i = 0; i < Short.MAX_VALUE; i++) {Thread thread1 = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println("thread1" + Thread.currentThread().getName());}});Thread thread2 = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println("thread2" + Thread.currentThread().getName());}});thread1.run();thread2.run();}}
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
thread1-main
thread2-main
每一次输出都是间隔1秒并且一直都是交替执行。妥妥的单CPU并行。这下子好了,电脑只有一个CPU在运行应用程序的。