Java на habrahabr

Январь 22, 2012

 

JAVA / Обработка клиентов сервера на ScheduledThreadPoolExecutor

Ниже я опишу один из возможных вариантов обработки клиентов на сервере с использованием ScheduledThreadPoolExecutor. Примеры включены.

Отличие от конкурентной модели


В отличии от модели работы, где на каждого клиента выделяется личный поток, у ThreadPoolExecutor есть несколько весомых, на мой взгляд преимуществ: вместо одного потока на клиента, используется ровно столько потоков, сколько Вы укажете — меньше висит спящих потоков (по моему опыту, более 95% времени потоки клиентов спят); меньше конкуренция кода; обычно код понятнее и проще.

Я не претендую на правильность реализации или использования ScheduledThreadPoolExecutor, и буду рада, если меня поправят и скажут, что я делаю всё не так, и как надо делать всё на самом деле.