Grupo de subprocesos vs muchos hilos individuales

Estoy en medio de un problema en el que no puedo decidir qué solución tomar.

El problema es un poco único. Pongámoslo de esta manera, estoy recibiendo datos de la red continuamente (2 a 4 veces por segundo). Ahora cada dato pertenece a un grupo diferente, digamos, Ahora, llamemos a estos grupos, grupo1, grupo2 y así sucesivamente.

Cada grupo tiene una cola de trabajo dedicada donde los datos de la red se filtran y se agregan a su grupo correspondiente para su procesamiento.

Al principio, creé un subproceso dedicado por grupo que tomaría los datos de la cola de trabajos, los procesaría y luego pasaría al estado de bloqueo (utilizando la cola de bloqueo vinculada).

Pero mi superior sugirió que debería usar grupos de subprocesos porque de esta manera los subprocesos no se bloquearán y otros grupos los podrán utilizar para el procesamiento.

Pero aquí está la cosa, la obtención de datos es lo suficientemente rápida y el tiempo que tarda un subproceso en procesarlo es lo suficientemente largo para que, posiblemente, el subproceso no entre en modo de bloqueo. Y esto también garantizará que los datos se procesen secuencialmente (el trabajo 1 se realiza antes que el trabajo 2), lo que, en combinación, es muy poco probable que no ocurra.

Mi senior también está enfocado en el hecho de que la agrupación también nos ahorrará mucha memoria porque las hebras están en POOLED (estoy pensando que él realmente fue por la palabra;)). Si bien no estoy de acuerdo con esto porque, personalmente pienso, agrupados o no, cada hilo tiene su propia memoria de pila. A menos que haya algo en los grupos de subprocesos que no conozco.

Una última cosa, siempre pensé que la agrupación ayuda a que los trabajos aparezcan en un gran número por poco tiempo. Esto tiene sentido porque la creación de subprocesos sería una pérdida de rendimiento debido a que el tiempo que se tarda en iniciar un subproceso es mucho más que el tiempo empleado en hacer el trabajo. Así que la agrupación ayuda mucho aquí.

Pero en mi caso group1, group2, ..., groupN siempre permanecen vivos. Así que si hay datos o no, todavía estarán allí. Así que el desove de hilos no es el problema aquí.

Mi senior no está convencido y quiere que vaya con la solución de agrupación porque su huella de memoria es excelente.

Entonces, ¿qué camino tomar?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta