niezsynchronizowane wątki

0

Mam problem z wątkami w J2ME, otóż jest wątek głowny oraz w timer-ze co 6 sekund uruchamiany jest nowy wątek który pobiera dane z Internetu zrzucając je do zmiennej typu Vector. Jednak to pobieranie wychodzi czasowo różnie i czasami nie wyrabia. W efekcie podczas jego wykonywania zostaje uruchomiony jeszcze inny ktory robi dokladnie to samo, a że zrzucają dane do jednej zmiennej to Vector zostaje np zapelniony do polowy starym a pozniej to juz loteria (raz z jednego raz z drugiego). Chcialbym jakos nad tym procesem zapanwac. A dokladniej chodzi o to zeby nie zaczynal sie nowy zanim skonczy sie stary, oraz zeby miedzy jednym pobraniem a kolejnym bylo rzeczywiscie te 5 sekund... Macie jakies pomysly?

0

niech wątek przy włączaniu zatrzymuje stoper a przy końcu pracy go włącza

pasi? =)

0

czyli powinienem na obiekcie
TimerTask tt

wykonac metode

wait() ?

a jak pozniej go wznowic?

0
csh napisał(a)

czyli powinienem na obiekcie
TimerTask tt

wykonac metode

wait() ?

a jak pozniej go wznowic?

Jezeli nie chcesz pobierac dwa razy tych samych danych, to koordynacji dzialan mozesz uzyskac dzieki medoda klasy Object: wait, notify i notifyAll. Wait oczekuje po prostu na jakies zdarzenie. Wznowienie nastepuje, gdy inny watek wywola notify na rzecz tego samego obiektu "na ktorym" watek czeka...

0

A może by tak uruchomić tylko jeden wątek pobierający dane z sieci a w nim pętlę. W pętli byłyby pobierane dane, po pobraniu wywołanie Thread.sleep(6000); i od nowa. Fakt, że pobranie nie będzie co 6 sekund dokładnie, tylko co 6 sekund i czas pobrania, ale może wystarczy?

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