Как я могу использовать свой многоядерный выделенный сервер для запуска моего Java-приложения? - PullRequest
2 голосов
/ 17 ноября 2009

У меня есть игра, созданная в среде Java, и я использую JVM.

У меня 4 ядра с частотой 2,4 ГГц, и мой сервер использует только одно из этих ядер ...

Я пробовал и искал, и у меня до сих пор нет руководств по настройке нескольких ядер для запуска игры, например, 1 ядро ​​для сохранения и загрузки персонажа, 1 ядро ​​для самого сервера и 1 ядро ​​для помощника чтобы помочь другим ядрам, которым нужно больше энергии.

Я даже не знаю, возможно ли это, но все это в java, операционная машина - Windows Server 2003, и я так старался, что просто не знаю, что делать.

Может кто-нибудь, пожалуйста, помогите мне!

Большое спасибо!

Ответы [ 4 ]

2 голосов
/ 17 ноября 2009

Java по умолчанию будет использовать несколько ядер. К сожалению, приложение должно быть специально закодировано, чтобы быть многопоточным. Вероятно, игра запускает все в ветке рассылки событий. Приложение должно быть изменено, чтобы использовать преимущества нескольких ядер.

С другой стороны, такие процессоры, как Core i5, могут определять, когда используется только одно ядро, и могут перегружать это одно ядро. Это помогает программам, которые не являются или не могут быть многопоточными.

2 голосов
/ 17 ноября 2009

Вы не можете напрямую делегировать задачи конкретным ядрам ЦП с помощью Java, но если вы реализуете свою программу с использованием нескольких потоков (напрямую или с помощью служебных классов executor в java.util.concurrent), ОС будет запускать разные потоки / задачи на разных ядрах, если это возможно.

Чтобы достичь этого, вы, конечно, должны понимать основы и подводные камни многопоточного программирования, учиться тому, как безопасно обмениваться данными между потоками, предотвращать одновременный доступ к нескольким потокам и изменять важные данные и так далее. Однако эта тема слишком широка, чтобы кратко изложить ее здесь.

0 голосов
/ 15 января 2010

Немного ясности в этом @ Xepoch? Я понимаю часть RMI, но как JVM может быть связана с набором процессоров. Помните, здесь я говорю о 4-ядерных процессорах, так что для меня это 4 процессора, а не 4 одноядерных.

0 голосов
/ 17 ноября 2009

Можно также кодировать несколько JVM, и каждая JVM может быть связана с набором процессоров с необходимыми RMI между ними. Это может быть связано с программированием.

...