He oído que mezclar bifurcación y subprocesamiento en un programa podría ser muy problemático, a menudo como resultado de un comportamiento misterioso, especialmente cuando se trata de recursos compartidos, como bloqueos, tuberías, descriptores de archivos. Pero nunca entiendo completamente cuáles son exactamente los peligros y cuándo pueden suceder. Sería genial si alguien con experiencia en esta área pudiera explicar un poco más en detalle cuáles son las dificultades y qué debe ser cuidado al programar en un entorno de este tipo.tenedor en el programa multiproceso
Por ejemplo, si quiero escribir un servidor que reúna datos de varios recursos diferentes, una solución que he pensado es tener el servidor genera un conjunto de hilos, cada popen para llamar a otro programa para hacer el real trabaje, abra las tuberías para recuperar los datos del niño. Cada uno de estos subprocesos responde por su propio trabajo, sin intercambio de datos en b/w, y cuando se recopilan los datos, el hilo principal tiene una cola y estos subprocesos de trabajo simplemente pondrán el resultado en la cola. ¿Qué podría salir mal con esta solución?
No limite su respuesta simplemente "respondiendo" mi escenario de ejemplo. Cualquier sugerencia, solución alternativa o experiencia que no esté relacionada con el ejemplo pero que sea útil para proporcionar un diseño limpio sería genial. ¡Gracias!
aquí es una [buena lectura] (http://thorstenball.com/blog/2014/10/13/why-threads-cant-fork/) con más detalles sobre el tema - –