如何使用我的多核专用服务器来运行我的Java应用程序?

时间:2009-11-17 00:06:47

标签: java windows multicore

我有一个在java环境中构建的游戏,我使用JVM。

我有4个内核@ 2.4Ghz,我的服务器只使用其中一个内核......

我已经尝试过并且仍然没有指导设置多个内核来运行游戏,例如1个内核用于运行字符保存+加载,1个内核用于服务器本身,1个内核用于帮助程序帮助其他需要更多电源的内核。

我甚至不知道这是否可行但是这一切都在java中,操作机器是Windows Server 2003而且我已经努力了,我只是不知道该怎么做。

请有人帮助我!

非常感谢你!

4 个答案:

答案 0 :(得分:2)

您无法使用Java直接将任务委派给特定的CPU内核,但如果使用多个线程(直接或使用java.util.concurrent中的executor实用程序类)实现程序,则操作系统将运行不同的线程/如果可能的话,在不同的核心上执行任务。

要实现这一点,您当然必须了解多线程编程的基础知识和缺陷,学习如何在线程之间安全地交换数据,防止多个线程同时访问和修改关键数据等等。然而,这个话题太过宽泛,无法在简短的回答中进行总结。

答案 1 :(得分:2)

默认情况下,Java将利用多个核心。不幸的是,应用程序必须专门编码为多线程。游戏可能会在Event Dispatch Thread中运行所有内容。需要更改应用程序才能利用多个内核。

从好的方面来说,像Core i5这样的处理器可以检测何时只使用一个内核,并且可以超频单个内核。这有助于没有或不可能是多线程的程序。

答案 2 :(得分:0)

还可以编写多个JVM代码,每个JVM可以绑定到一组CPU,并在它们之间具有必要的RMI。这可能与编程有关。

答案 3 :(得分:0)

有关@ Xepoch的一些澄清?我理解RMI部分,但JVM如何绑定到一组CPU。请记住,我在谈论4核处理器,因此我需要4个CPU而不是4个单核处理器。