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?
niech wątek przy włączaniu zatrzymuje stoper a przy końcu pracy go włącza
pasi? =)
czyli powinienem na obiekcie
TimerTask tt
wykonac metode
wait() ?
a jak pozniej go wznowic?
csh napisał(a)
czyli powinienem na obiekcie
TimerTask ttwykonac 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...
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?