Share via


Instâncias de pipe nomeadas

O servidor de pipe mais simples cria uma única instância de um pipe, conecta-se a um único cliente, comunica-se com o cliente, desconecta-se do cliente, fecha o identificador de pipe e termina. No entanto, é mais comum que um servidor de pipe se comunique com vários clientes de pipe. Um servidor de pipe poderia usar uma única instância de pipe para se conectar com vários clientes de pipe conectando-se e desconectando-se de cada cliente em sequência, mas o desempenho seria ruim. O servidor de pipe deve criar várias instâncias de pipe para lidar com eficiência com vários clientes simultaneamente.

Há três estratégias básicas para atender várias instâncias de pipe.

O servidor de pipe multithread é mais fácil de gravar, pois o thread para cada instância lida com comunicações para um único cliente de pipe. O sistema aloca o tempo do processador para cada thread conforme necessário. Mas cada thread usa recursos do sistema, o que é uma desvantagem para um servidor de pipe que manipula um grande número de clientes.

Com um servidor de thread único, é mais fácil coordenar operações que afetam vários clientes e é mais fácil proteger recursos compartilhados contra acesso simultâneo por vários clientes. O desafio de um servidor de thread único é que ele requer coordenação de operações sobrepostas para alocar o tempo do processador para lidar com as necessidades simultâneas dos clientes.