У меня странная проблема с моим (многопоточным) сервером, когда у меня подключено более 500 игроков одновременно, для PrinterWriter требуется более 100 секунд или более (2 минуты), чтобы иногда завершить flush () или print ().
Вот код:
public static void send(Player p, String packet)
{
PrintWriter out = p.get_out();
if(out != null && !packet.equals("") && !packet.equals(""+(char)0x00))
{
packet = Crypter.toUtf(packet);
out.print((packet)+(char)0x00);
out.flush();
}
}
printWriter выглядит примерно так:
_in = new BufferedReader(new InputStreamReader(_socket.getInputStream()));
_out = new PrintWriter(_socket.getOutputStream());
Если добавить ключевое слово, синхронизированное с методом send (), весь серверначинает лагать каждые 2 секунды, а если нет, то случайный игрок начинает лагать без причины.
У кого-нибудь есть идеи?Откуда это?Что мне делать?