В настоящее время я создаю симуляционную программу для симуляции клиентов, перемещающихся по карте многопользовательской онлайн-игры. Я должен иметь сетку для представления карты, которая содержит объекты клиента. Эти клиенты должны перемещаться по сетке случайным образом, каждый из которых взаимодействует с объектом сервера.
В данный момент я запускаю новый поток для каждого клиента, и он вызывает на своем сервере метод со случайным направлением движения каждую секунду.
Это работает нормально, пока я не начну добавлять огромное количество клиентов (~ 5000), где происходит сбой программы, и я получаю исключение "java.lang.OutOfMemoryError: не в состоянии создать новый собственный поток".
Есть ли альтернативный способ справиться с таким большим количеством клиентов, каждый из которых не является отдельным потоком?
Спасибо, Дэн