Цитата:
Сообщение от 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 карту для этого дела несколько толсто