Existe uma maneira de vários processos compartilharem um soquete de escut
Na programação do soquete, você cria um soquete de escuta e, em seguida, para cada cliente que se conecta, obtém um soquete de fluxo normal que pode ser usado para lidar com a solicitação do cliente. O sistema operacional gerencia a fila de conexões de entrada nos bastidore
Dois processos não podem se conectar à mesma porta ao mesmo tempo - por padrão, de qualquer maneir
Estou imaginando se existe uma maneira (em qualquer sistema operacional conhecido, especialmente Windows) de iniciar várias instâncias de um processo, de modo que todas elas se liguem ao soquete e, assim, compartilhem efetivamente a fila. Cada instância do processo pode ser encadeada única; apenas bloquearia ao aceitar uma nova conexão. Quando um cliente se conectava, uma das instâncias do processo ocioso aceitava esse client
Isso permitiria que cada processo tivesse uma implementação muito simples e de thread único, compartilhando nada, a menos que fosse através de memória compartilhada explícita, e o usuário pudesse ajustar a largura de banda de processamento iniciando mais instância
Existe um recurso desse tipo?
Editar Para aqueles que perguntam "Por que não usar tópicos?" Obviamente, os threads são uma opção. Porém, com vários encadeamentos em um único processo, todos os objetos são compartilháveis e é preciso tomar muito cuidado para garantir que os objetos não sejam compartilhados ou sejam visíveis apenas por um encadeamento por vez, ou sejam absolutamente imutáveis, e os idiomas mais populares e os tempos de execução não têm suporte interno para gerenciar essa complexidad
Ao iniciar um punhado de processos de trabalho idênticos, você obteria um sistema simultâneo no qual opadrã não é compartilhamento, facilitando muito a criação de uma implementação correta e escaláve