Поделиться через


Экземпляры именованных каналов

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

Существует три основных стратегии обслуживания нескольких экземпляров канала.

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

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