Soviel ich weiß kann Java/Bukkit mehr als nur einen Kern benutzen. Wenn ein Kern zu 100% ausgelastet ist dann wird der nächste beansprucht.
So funktioniert Multi-Threading leider nicht. Es wird seitens des Programms festgelegt, was jeweils ein Thread für Aufgaben erfüllen soll, und diese laufen dann weitestgehend nebeneinander her - der in meinen Augen wichtigste Aspekt von Minecraft, die Tick-Berechnung, verwendet einen einzelnen Thread. Theoretisch wäre es sicherlich denkbar, das Ding so umzuschreiben, dass die unterschiedlichen Aspekte der Tick-Berechnung auf mehrere Threads verlegt werden - allerdings wäre so nicht mehr unbedingt eine exakte Tickrate messbar. Jedenfalls: so wie es damit bisher ist, wäre es durchaus sinnvoll, dass ein einzelner Kern der CPU soviel Leistung wie möglich bringt, damit die im Einzelthread ablaufende Tick-Berechnung mehr davon hat. Durch Sachen wie Spigot und diverse Plugins lassen sich jedoch gewisse Aspekte von Minecraft auf mehrere Threads verlegen - etwa der Netty-Code in Spigot, welcher das Versenden von Chunkdaten auf mehrere Threads verteilt und dies unabhängig von dem serverseitigen Tickberechnungs-Thread tut.
Allerdings sind auch Garbage Collections zu bedenken - diese profitieren durchaus sehr stark von mehreren Kernen. Es ist zwar auch mit Single-Threading möglich, sie so zu optimieren, dass kein StopTheWorld-Event die Tick-Berechnung von MC stört: ein Tick alle 50ms, und soweit der jeweilige Tick innerhalb dieser Zeit berechnet werden konnte UND zu der Zeit auch ein StopTheWorld-Event (z.B. Minor Collect oder CMS-Mark-Phase) käme, dann sollte beides zusammen eben in unter 50ms ablaufen, um keine für die Spieler spürbaren Lags zu haben. Die ganze GC-Optimierung wird definitiv einfacher, wenn mehr Kerne zur Verfügung stehen, zumal manche GC-Aspekte, die simultan (Concurrent) ablaufen, vom Prinzip her die MC-Tickrate kurzzeitig runterziehen können, auch wenn es keinen Komplettstillstand gibt.
Denke, da muss man einfach abwägen. Ich persönlich würde lieber einen Quadcore mit über 3 GHz je Core nehmen als einen Octacore mit
unter 3 GHz je Core, da vier Kerne für die GC-Sachen meiner Erfahrung nach mehr als ausreichen und man so dann doch mehr Leistung für die MC-Tickberechnung hat. Wobei ich sagen muss, dass mich die CPUs mit 4 GHz in manchen Rootservern da schon reizen würden... *lechz*
