Il metodo send
synchronized void send (String msg) {
// EFFECTS: se this è vuoto, riceve msg e diventa pieno; altrimenti il thread
// viene sospeso finché this non diventa vuoto
if (pieno) try {wait ( ); } catch (InterruptedException e) { }
quando il thread produttore lo invoca, il metodo send verifica il valore della variabile istanza pieno
- se pieno è false
- memorizza il messaggio nella variabile buffer
- aggiorna la variabile pieno
- avverte il thread consumatore che c’è un nuovo dato
- se pieno è true
- il thread si mette in attesa fintanto che il consumatore non segnala che l’area di comunicazione è disponibile