Native JDK сетевое программирование BIO

Сервер предлагает IP и порт прослушивания, клиент хотел бы работать, подключив сервер прослушивает адрес инициирует запрос соединения квитирования по три раза, если соединение установлено успешно, обе стороны могут общаться через сокет.

Традиционная модель развития в синхронной блокировке, ServerSocket отвечает за связывание IP - адреса и начать прослушивание порта, сокет , ответственный за инициирование операции соединения. После успешного подключения, обе стороны синхронного блокирования связи через входные и выходные потоки. 

Традиционная BIO модель Коммуникации: BIO модель связи с сервером, как правило , независимой акцепторной потоком отвечает за мониторинг клиентских подключений, после получения запроса на подключение клиента , чтобы создать новый поток для каждой обработка ссылки клиента не отрегулировала После завершения, выходной поток возвращается ответ клиенту, поток разрушен. Т.е., типичная модель запрос-ответ.

Самая большая проблема этой модели является отсутствие упругой масштабируемости, когда увеличение клиентов объем параллельного доступа, число потоков клиент и сервер параллельного доступа в 1: 1 пропорциональная зависимость, то Java потоки в более ценные системные ресурсы, после того, как быстрое расширение числа потоков, производительность системы будет резкое снижение, так как трафик продолжает увеличиваться, то система в конце концов , погибают - офф - .

Для того, чтобы улучшить такую модель резьбового соединения, мы можем использовать пулы потоков для управления этими потоками, чтобы достичь . 1 один или более обработки нити N модель (внизу , но по- прежнему использовать клиент синхронизации блокировки ввода / вывода ), как правило , называют а « псевдо асинхронного ввода / вывода модели » .

Мы знаем , что, если CachedThreadPool пул потоков (не ограничивает количество потоков, нить неуверен , если этот блог статье прилагается), на самом деле, в дополнение к автоматически поможет нам управлять потоками (мультиплексирование), это выглядит как 1: 1 , из клиент: номер модель резьбы, а также использование FixedThreadPool мы эффективно контролировать максимальное количество потоков , чтобы гарантировать , что система управления с ограниченными ресурсами для достижения N: M псевда асинхронный ввод / вывод модели.

    Тем не менее, из-за пределов число потоков, если данные считывания происходит медленно (например, объем данных, передачи по сети и медленно), в случае большого количества одновременного доступа к другим новостям, можно только ждать, это самый большой злоупотребление служебным положением.

Как использовать, см модуль био под кодом

рекомендация

отwww.cnblogs.com/Soy-technology/p/11114689.html