¿Servidor TCP / IP único que maneja múltiples clientes (en C ++)?

Quiero escribir un servidor TCP / IP en C ++ (usandobind(), accept() etc.) que puede tratar con múltiples clientes que se conectan al mismo tiempo. He leído algunos temas sobre esto, y todos están sugiriendo lo siguiente (pseudocódigo sucio que viene):

set up server, bind it

while (1) {
    accept connection
    launch new thread to handle it
}

Lo que funcionaría totalmente bien en una máquina que tiene múltiples hilos. Pero mi sistema objetivo es una máquina de núcleo único sin hilos de hardware. Para una pequeña prueba, intenté lanzar varios hilos a través destd::thread en el sistema pero fueron ejecutados uno tras otro. Sin bondad paralela :(

Eso hace que sea imposible implementar el algoritmo anterior. Quiero decir, estoy seguro de que se puede hacer, pero no sé cómo, así que agradecería cualquier ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta