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

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

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

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

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