File Crawler
Completion requirements
Opened: Tuesday, 12 October 2021, 12:00 AM
Due: Monday, 1 November 2021, 11:59 PM
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".