Potrzebuje zrobić zadanko i nie bardzo wiem jak to ugryźć. Nie będę ukrywał że programowanie w Javie to moja pięta achillesowa.
Każda pomoc w tym temacie baaaardzo mile widziana
POZDRAWIAM serdecznie i z góry bardzo dziękuję.
A oto treść zadania:
W problemie występuje P+1 wątków: P producentów i 1 konsument, którzy dzielą wspólny zasób - bufor dla produkowanych (konsumowanych) jednostek.
Rolę bufora pełni kolejka (FIFO) mieszcząca N łańcuchów znaków (string), umożliwiająca wykonanie operacji enqueue i dequeue.
Producent działa następująco:
- jeżeli bufor nie jest pełny, to co tp milisekund producent umieszcza w buforze losowy łańcuch znaków.
- jeżeli bufor jest pełny, to producent powinien zostać uśpiony do momentu usunięcia wartości z bufora przez konsumenta.
Konsument działa następująco:
- jeżeli bufor jest pusty, to konsument powinien zostać uśpiony do momentu umieszczenia wartości w buforze przez producenta.
- jeżeli bufor nie jest pusty, to konsument usuwa wartość z bufora.
Praca wątków powinna zostać przerwana po upływie 1 sekundy, a wątek główny powinien sprawdzić, czy liczba wyprodukowanych jednostek = liczbie skonsumowanych + liczba jednostek w buforze.
Program powinien wczytać parametry P, N, tp ze standardowego wejścia.