In un irish pub i clienti che portano uno strumento musicale e suonano ricevono delle birre in omaggio dal proprietario ogni volta che fanno una pausa (smettendo di suonare).
Il proprietario offre M birre e non di più.
Ad ogni pausa, il cliente musicista aspetta di vedere se il proprietario gli porta la birra
Il cliente musicista suona un certo numero di volte (diverso per ogni musicista) e poi va a casa
Il proprietario è sempre in attesa di vedere se qualche musicista ha sete (finchè non finisce le birre gratis).
Il problema consiste nel sincronizzare il thread Holder e i thread Musician in base all’evento consistente nel fatto che un cliente musicista ha smesso di suonare e ha voglia di birra.
Class Diagram
State Diagram
Activity Diagram
BeerAwaiers.java
Holder.java
Musician.java
ServedBeers.java
IrishPub.java
In un ristorante entrano diversi clienti.