Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用多核专用服务器来运行java应用程序?_Java_Windows_Multicore - Fatal编程技术网

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

如何使用多核专用服务器来运行java应用程序?,java,windows,multicore,Java,Windows,Multicore,我有一个在java环境中构建的游戏,我使用JVM 我有4个内核@2.4Ghz,我的服务器只使用其中一个内核 我已经试过并搜索过了,但我仍然没有设置多个核心来运行游戏的指南,比如说,1个核心用于运行角色保存+加载,1个核心用于服务器本身,1个核心用于帮助其他需要更多电源的核心 我甚至不知道这是否可行,但这一切都是用java实现的。操作机器是windows server 2003,我太努力了,不知道该怎么办 请有人帮帮我 非常感谢你 您不能使用Java直接将任务委托给特定的CPU内核,但是如果您使用

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

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

我已经试过并搜索过了,但我仍然没有设置多个核心来运行游戏的指南,比如说,1个核心用于运行角色保存+加载,1个核心用于服务器本身,1个核心用于帮助其他需要更多电源的核心

我甚至不知道这是否可行,但这一切都是用java实现的。操作机器是windows server 2003,我太努力了,不知道该怎么办

请有人帮帮我


非常感谢你

您不能使用Java直接将任务委托给特定的CPU内核,但是如果您使用多个线程(直接或通过使用Java.util.concurrent中的executor实用程序类)来实现程序,操作系统将在不同的内核上运行不同的线程/任务(如果可能)


要实现这一点,您当然必须理解多线程编程的基础知识和缺陷,学习如何在线程之间安全地交换数据,防止多个线程同时访问和修改关键数据,等等。但是,这个主题太宽泛,无法在这里用简短的回答来概括。

默认情况下,Java将利用多核。不幸的是,应用程序必须经过专门编码才能是多线程的。很可能游戏正在运行事件调度线程中的所有内容。为了利用多核,需要更改应用程序


好的一面是,像Core i5这样的处理器可以检测何时只使用一个内核,并且可以对单个内核进行时钟切换。这有助于那些不是或不能是多线程的程序。

一个人也可以编写多个JVM,每个JVM可以绑定到一组CPU,它们之间有必要的RMI。这可能与编程有关。

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

他制作了一个游戏,显然是为了在一个线程中运行。那么你在服务器级别已经做不了什么,除了运行同一个游戏的多个实例,但这也不是他真正想要的。英语显然不是他的第一语言(顺便说一句,我也不是),但我读到并理解了他的第一句话,就好像他用Java实现了一个游戏,现在想知道如何利用多核。这是一个很好的信息,谢谢你发布这篇文章。您认为您可以进一步向我解释有关此关键数据访问的更多信息吗?我不想使用java.util.concurrent中的executor实用程序类在一个内核上单独运行一个进程来保存字符帐户或创建新的帐户,因为这几乎是最大的部分,那么另一部分就是让服务器在一个内核上运行,这样延迟就可以减到最小。我确实想在我的服务器中使用多个核心。@steven:不,它没有。这是一个编程问题。从这个问题上看,不清楚海报是编写了这个游戏,还是只是试图运行它,这将澄清它属于哪里。这是一个核心关联。是的,有人称它为处理器关联,有人称它为CPU绑定或绑定(阅读Linux内核调度器)。