Problem z wątkiem.

Problem z wątkiem.
R5
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 12 lat
  • Postów:23
0

Witam.

Chciałbym napisać program w którym z jednym elementów jest wątek w którego metodzie run znajduje się nieskończona pętla while w której sprawdzam warunki i inkrementuje poszczególne wartości. Mam np. tablice 12 struktur i właśnie te struktury modyfikuje w tej pętli. Oprócz wątku modyfikacji struktur dokonują także metody innej klasy.

Problem wychodzi wtedy jak uruchamiam wątek thread.start a następnie wywołuje metodę korzystającą ze wspólnych zasobów tj. tablicy struktur, program cały czas zawiesza działanie(nie wywala się ). Co robie źle? Próbowałem wszystkie metody korzystające z tablicy struktur wsadzić do klasy która dziedziczy po klasie Thread ale zachowanie jest to samo. Wiecie gdzie robię bład?
Pozdrawiam


Live and let die.
C4
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 12 lat
  • Postów:37
0

pokaż kod.


Żeby zrozumieć rekurencję, trzeba najpierw zrozumieć rekurencję.
R5
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 12 lat
  • Postów:23
0

Nie mogę opublikować kodu, bo nie jest mój ja go tylko przerabiam.

Mam jeszcze pytanie w jaki sposób rozwiązać problem, chciałbym żeby w jednym wątku np. X, w metodzie run znajdowała się pętla while, a inny obiekt zawierał metody modyfikujące zmienne które wykorzystuje wątek X. Czy w ogóle może tak to wyglądać? Czy może wszystkie metody oraz dane powinny znajdować się klasie która dziedziczy po klasie Thread (w tym przypadku w wątku X )? Czy podczas wykonywania metod poza wątkiem X , trzeba wątek X blokować na jakiś czas ? Jak Wy byście to zrobili?

Pozdrawiam


Live and let die.
n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 5 lat
  • Postów:2412
R5
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 12 lat
  • Postów:23
0

Rozwiązałem problem, w wątku do pętli while w metodzie run dodałem opóźnienie TimeUnit.NANOSECONDS.sleep(1); i program działa bez wieszania.
Wie ktoś dlaczego teraz działa?


Live and let die.
kult
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad rok
1

Wątek przestał zjadać 100% procka?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.