Сама система тиков работает на одном потоке, сеть - на другом потоке, иначе все бы зависло, есть ещё несколько служебных потоков, а так, задачи в сервере не распределены по потокам, как могли бы. То есть сервер нельзя считать многопоточным. Пойдем далее, IO, который будет читать/писать в/из файлового носителя просто запнется при большом онлайне. IO-сеть перестанет нормально отвечать, так ещё и stop-the-world GC.. IO не сможет справится со своей задачей при большом онлайне, нужно во-первых, переписать все на NIO, оно работает гораздо быстрее. GC можно отключить опцией -XX

isableGC, вызывать раз в полчаса System.gc(). Конечно же, можно распределить на потоки игровую логику.. Но тогда для 1 игрового сервера лучше было бы иметь 1 физический, чтобы все потоки распределялись по вычистительным ядрам, иначе одно будет ждать, пока выполнится другое, будет ещё большая мешанина.