我有一个执行长时间计算的程序,所以我想加快它的性能。所以我现在尝试启动 3 个线程,但是 java.exe
仍然占用 25% 的 CPU 使用率(所以,只使用了一个 CPU),即使我尝试使用 它仍然存在>.setPriority(Thread.MAX_PRIORITY);
并实时设置 java.exe
的优先级 (24)。我尝试使用 RealtimeThread
但它似乎运行得更慢。如果每个线程分配给一个处理器就完美了,总CPU使用率提高到75%,但我不知道该怎么做。这就是我的代码现在的样子:
Thread g1 = new MyThread(i,j);
g1.setPriority(Thread.MAX_PRIORITY);
g1.run();
Thread g2 = new MyThread(j,i);
g2.setPriority(Thread.MAX_PRIORITY);
g2.run();
Thread g3 = new MyThread(i,j);
g3.setPriority(Thread.MAX_PRIORITY);
g3.run();
if (g1.isAlive()) {
g1.join();
}
if (g2.isAlive()) {
g2.join();
}
if (g3.isAlive()) {
g3.join();
}
最佳答案
您实际上并没有使用线程。
您需要调用 .start()
,而不是 .run()
。
关于java - 为什么我的线程程序只使用一个 CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507041/