Esiste un programma Java che legge un elenco di ordini e per ciascun ordine avvia un thread che riceve dati da SQL e stampa l'elenco di elementi in un determinato ordine in un nome_ordine.html. Voglio scrivere una classe che genererebbe all_orders.html che contiene un elenco di articoli e la quantità di ciascun articolo in tutti gli ordini.
Questo è piuttosto semplice in un singolo ambiente con thread. Scrivi i dati rilevanti su order_name.csv, una volta che tutti i thread si fermano - analizza questi file e se l'elemento esiste - incrementa contatore, altrimenti - aggiungilo all'elenco e imposta il contatore a 1. Una volta analizzati tutti i file - crea il rapporto.
Come posso farlo in un caso multithread? Innanzitutto, è sicuro creare un private static list<items(String name, int count)>
e cercare / modificarlo da più thread? Come controllare che tutti i thread siano finiti, il list<items>
è completo e posso iniziare a preparare all_items.html? C'è un metodo migliore di un elenco statico?
Modifica: il programma è multithreading per ragioni storiche e per accelerare l'elaborazione di più ordini. Il tutto_orders.html verrà preparato utilizzando un singolo thread. Qual è il modo corretto per passare informazioni a questo thread. Nello specifico l'ordine "a" ha 2 elementi "pippo" e 5 elementi "barra". E alla fine che questo ordine è completamente processato e non ha altri elementi.