sperando em vários eventos C ++

Existe uma maneira recomendada de aguardar várias entradas. Por exemplo, gostaria que meu programa pudesse receber informações de três fontes:

Listen em uma condição de thread, p. pthread_cond_wait ()

Tome dados da entrada padrão, por exemplo Obter linha(

Escute em um soquete, por exemplo aceitar(

Qual é o melhor jeito de concluir isso? Preciso de um thread para cada fonte de entrada diferente? Obrigad

questionAnswers(8)

yourAnswerToTheQuestion