Problem z wątkiem.

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

0

pokaż kod.

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

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?

1

Wątek przestał zjadać 100% procka?

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