MHard Написал:суть от того что подвиснет один из потоков этих пулов
Код:_ioPacketsThreadPool = new ThreadPoolExecutor(Config.IO_PACKET_THREAD_CORE_SIZE, Integer.MAX_VALUE, 5L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new PriorityThreadFactory("I/O Packet Pool", Thread.NORM_PRIORITY + 1));
_generalPacketsThreadPool = new ThreadPoolExecutor(Config.GENERAL_PACKET_THREAD_CORE_SIZE, Config.GENERAL_PACKET_THREAD_CORE_SIZE + 2, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new PriorityThreadFactory("Normal Packet Pool", Thread.NORM_PRIORITY + 1));
, не меняется
весь сервер не повиснет от заслипливания скрипта,но если вы так уж дословно придираетесь то пусть будет так "зависнет один из потоков обрабатывающий пакеты игрока".
Этих пулов, обрабатывающих пакетов "мало", по отношению к игрокам, 4 пула могут спокойно работать с 400 игроками
Добавлено через 4 минуты
В любом случае весь этот кусок бафера - просто ужасно написан, пишите по новой, использовать этот код крайне опасно для общего аромата вашего сервера.
Использовать concurrent карту для этого дела несколько толсто