3 wątki w Javie i ich "współdziałanie"

0

Mam pytanie odnośnie zadania, nie chodzi mi o kod, ale o jakąś koncepcję, tzn. można to nazwać slownym algorytmem, jak poradzić sobie z zadaniem ;) bo ja nie mam żadnego pomysłu, oczywiście napisałem podpkt 1, ale z 2,3,4 już gorzej. Jak pisałem, nie chodzi mi o kod, bardziej o wytłumaczenie co jak i dlaczego tak powinienem napisać.

Treść zadań:

0

Poczytaj: Wątki a później google i szukasz dalej.

0

Czyli załóżmy, dla przykładu 2, miałoby to wyglądać tak:

jest jakaś klasa, jakiś arbiter, która ma pole nr oznaczające nr wątku, który ma się wykonywać. Arbiter ma metody synchronized. Każdy z wątków ma swój obiekt arbitra (pole). Arbiter ma pola u siebie (w klasie class Arbiter) boolean pisze1, boolean pisze2, boolean pisze3, jeśli true, to znaczy, że któryś z nich pisze). I teraz wszystko rozgrywa się w metodach synchronized Arbitra. Jest ich 3 : chcePisac1, chcePisac2, chcePisac3. Eh, chyba zaraz dam kod jakiś bo nie wiem, czyw dobra strone ide nawet

0

Jeśli chodzi o podpunkt 2 to wystarczy tutaj metoda Thread.join()

Jeśli chodzi o 3 to na szybko to bym zrobił arbitra z synchronizowaną metodą przyjmującą numer porządkowy wątku. Każdy wątek podawał by swój numer do tej metody. Jeśli w danym momencie działać powinien inny wątek, to aktualny wątek robi wait(). W innym wypadku wykonuje się praca - jeśli dodatkowo aktualny obiekt Thread przekazuje do arbitra referencję na siebie, to arbiter może wywołać sam metodę wykonującą jeden krok algorytmu (może się np nazywać wypiszRaz()).

W 4. nie jestem pewien czy to spanie powinno blokować inne wątki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1