Одновременное обслуживание нескольких операций подключения
Более сложный вариант общей схемы, применяемой для выполнения неблокирующего подключения с тайм-аутом, может применяться для параллельной инициализации нескольких соединений. Это позволяет резко повысить производительность некоторых приложений.
Рассмотрим приложение Web-броузера. Последовательность действий, выполняется броузером при выборке HTML-страницы, например, об изготовлении бытовок на заказ в Казани , начинается с того, что он интерпретирует границу, отыскивая встроенные изображения. Каждое изображение связано с отдельным URL, а каждый из этих URL может находиться на разных Web-серверах, которые могут отличаться по скорости отклика. Если в клиентской программе принят примитивный подход, который состоит в том, что вначале выполняется подключение отдельно к каждому серверу, затем загрузка изображения и переход к следующему серверу, то сервер, который реагирует медленнее всех, задержит выполнение всех последующих операций. Вместо этого, путем параллельной инициализации многочисленных попыток подключения, в программе можно обрабатывать ответы серверов в том порядке, в каком они реагируют на запросы. В сочетании с использованием параллельных процессов передачи данных и визуализации страницы этот метод позволяет приступить к выводу Web-страницы на экран Web-броузера сразу после загрузки кода HTML.
Простой НТТР-клиент
Для иллюстрации такого подхода в настоящем разделе описано небольшое приложение Web-клиента, основанное на протоколе HTTP. Функциональные средства этого клиента не выдерживают никакого сравнения с теми возможностями, которые предоставляет библиотека LWP. Однако он обладает способностью выполнять выборку всего информационного наполнения страницы параллельно, а библиотека LWP этого (пока) не позволяет.