In questa pagina verranno riportati alcuni spunti per l'approfondimento delle tematiche trattate a lezione e degli esercizi svolti durante le esercitazioni.
Lo svolgimento degli spunti, con relativi documenti scritti e/o codice, puo' essere inviato per posta elettronica al prof. Antonio Corradi e all'ing. Luca Foschini.
Estensioni delle esercitazioni svolte
Esercitazione 1: Multithreading in Java
Si estenda il programma sviluppato nell'esercitazione svolta in laboratorio in modo che gestisca la generazione e la distruzione di tutti i processi messi in esecuzione (Canale compreso). Il risultato che si vuole ottenere e' il seguente: se tutti i Sottoscrittori terminano l'esecuzione e rimangono attivi dei soli Editori, tali Editori terminano senza effettuare ulteriori pubblicazioni e, una volta terminati tutti gli Editori, anche il Canale termina; in modo duale si vuole gestire la terminazione nel caso in cui gli Editori terminino prima dei Sottoscrittori.
In particolare, si suggerisce di istanziare, all'interno del main del programma, una struttura dati che mantenga il numero di Editori e Sottoscrittori attivi. Tale struttura dati, nota agli Editori, ai Sottoscrittori e al Canale, verra' utilizzata dagli stessi per gestire in modo sincronizzato la terminazione di tutti i processi.