Meillä on yksi puskuri-luokka instanssi (vaikka int[] -taulukko), johon useat tuottajat (producer) tuottavat dataa ja josta kuluttajat (consumer) kuluttavat dataa merkki kerrallaan.
Puskuriluokalla on siis ainakin metodit:
void lisaaLuku( int iLuku )
, joka lisää uuden luvun taulukkoon. int kulutaLuku()
, joka poistaa yhden luvun taulukosta ja palauttaa sen. Kuvataan jokaista tuottajaa ja kuluttajaa omalla säikeellään. Tee toteutus, jossa:
Testaa toteutuksen toimintaa erilaisilla tapauksilla ( 1 kuluttaja & 2 tuottajaa ; 8 kuluttajaa & 4 tuottajaa ) etc.
Kehitä ratkaisusta mahdollisimman tehokas siten, että: