Sto implementando un software di elaborazione dati. Il software ottiene dalla rete migliaia di eventi che devono essere elaborati secondo le regole. Ho implementato un servizio multi-thread, che riceve l'evento e lo inserisce nel motore di elaborazione.
Questo significa che ogni evento in entrata crea una nuova attività eseguibile e restituisce il controllo al thread principale. Il thread secondario inserisce i dati e muore, che è solo alcuni secondi.
Questa metodologia crea molti thread (da 150 a 260), e ho ricevuto "lamentele" che questo non è il modo giusto per farlo. Dovrei quindi limitare i thread a 5 o 10. Per me il modo in cui ho implementato è il solito modo. Quindi le mie domande sono:
-
Devo limitare i thread?
-
C'è un "modo giusto" stabilito per fare questo genere di cose?
Nota: i thread attualmente vengono creati in un pool di thread Java: java.util.concurrent.ThreadPoolExecutor
.