File Crawler
Aggregazione dei criteri
Aperto: martedì, 12 ottobre 2021, 00:00
Data limite: lunedì, 1 novembre 2021, 23:59
Si scriva un programma Java che riceve in input un filepath che individua una directory D e stampa le informazioni del contenuto di quella directory e, ricorsivamente, di tutti i file contenuti nelle sottodirectory di D.
Il programma deve essere strutturato come segue:
- Attiva un thread produttore ed un insieme di k thread consumatori.
- Il produttore comunica con i consumatori mediante una coda.
- Il produttore visita ricorsivamente la directory data e eventualmente tutte le sottodirectory e mette nella coda il nome di ogni directory individuata.
- I consumatori prelevano dalla coda i nomi delle directory e stampano il loro contenuto.
La coda deve essere realizzata con una LinkedList
. Ricordiamo che una LinkedList
non è una struttura thread-safe. Dalle API Java: "Note that the implementation is not synchronized. If multiple threads access a linked list concurrently, and at least one of the threads modifies the list structurally, it must be synchronized externally".