Andrea Moderatore

Registrato: 23/12/03 13:10 Messaggi: 5200
|
Inviato: Dom Mag 30, 2004 3:43 pm Oggetto: [Reti e S.O.] Prod/Cons bounded buffer con wait e notify |
|
|
Questa implentazione (nello zip c'� tutto) prevede l'ennesima variante del caso Produttore/Consumatore:
I produttori (nel mio test ne ho messi due, ma si possono aumentare) scrivono in un'area buffer di ampiezza limitata dei numeri da 0 a 1000, mentre i produttori (sempre due, aumentabili a piacere) li leggono e li consumano. Che circo!
Per evitare inutili attese operose ho usato i metodi wait e notifyAll... purtroppo chi ha un po' di occhio sull'OOP noter� che l'utilizzo di NotifyAll() non � molto efficiente in quanto notifica un evento sul buffer, risvegliando consumatori e produttori indistintamente (che eventualmente tornano a dormire se non � l'evnto da loro aspettato). Forse era meglio usare il pattern observer-observable, ma non � programma di esame.
Altre due note: i metodi accesori (get e put) di Bounded non controllano lo stato del buffer (pieno o vuoto) e riempiono ed estraggono a vite! scusate, ma non avevo tempo , tanto per quello che serve al programma vanno pi� che bene, il controllo � delegato ai produttori e ai consumatori. Inoltre notifyAll() � chiamato anche se il buffer non era vuoto o pieno... non cambia niente, ma � poco efficiente, avremo delle notifiche inutili, ma non avevo tempo di modificare... per lo stesso motivo il codice � poco commentato, vedr� di sistemarlo pi�avanti, se avete problemi, scrivete qui sotto o se proprio... telefonatemi!
Buona giornata di sole! Adesso mi dar� ai socket  |
|