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

2011-10-04 19:05
ssh
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ń:

  • zad.txt (0 MB) - ściągnięć: 119
edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-10-04 19:22
0

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


Pozdro & poćwicz!

Pozostało 580 znaków

2011-10-04 20:49
ssh
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

Pozostało 580 znaków

2011-10-04 21:39
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.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2011-10-04 21:40

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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