5, 100, 1000?¿Cuántos subprocesos simultáneos en una aplicación son muchos?
Supongo que "depende", pero ¿en qué?
¿Qué es común en las aplicaciones que se ejecutan como daemons/servicios de servidor?
¿Qué son los límites duros?
Dado que la máquina puede manejar la carga de trabajo general, ¿cómo determino en cuántos subprocesos la sobrecarga comienza a tener un impacto en el rendimiento?
¿Cuáles son las diferencias importantes entre los sistemas operativos?
¿Qué más se debe considerar?
Pregunto porque me gustaría utilizar hilos en una aplicación para organizar subcomponentes de mi aplicación que no comparten datos y están diseñados para hacer su trabajo en paralelo. Como la aplicación también usaría grupos de hilos para paralelizar algunas tareas, me preguntaba en qué punto debería comenzar a pensar sobre la cantidad de hilos que se ejecutarán en total.
Conozco la regla n + 1 como una guía para determinar el número de subprocesos que trabajan simultáneamente en la misma tarea para obtener rendimiento. Sin embargo, quiero usar hilos como uno podría usar procesos en un alcance mayor, i. mi. para organizar tareas independientes que no deberían interferir entre sí.
En this related question, algunas personas recomiendan minimizar el número de subprocesos debido a la complejidad añadida. Para mí, parece que los hilos también pueden ayudar a mantener las cosas ordenadas de forma más ordenada y reducir la interferencia. ¿No es eso correcto?
¿Tal vez podría publicar más información sobre su entorno operativo? La arquitectura de la CPU, el tamaño del espacio de direcciones, el sistema operativo, los patrones de uso de la aplicación, la carga esperada, hacen toda la diferencia en el mundo. –
No, lo siento, eso en realidad estaría fuera de mi punto. La aplicación que estoy escribiendo está diseñada para varios entornos y quiero saber qué cosas debería estar buscando, para poder juzgar mejor los problemas específicos del entorno. –