wielowatkowosc pytanie

0

Mam pytanie w zwiazku z wielowatkowoscia. Pisze w J2ME i polaczenie z internetem wyrzucilem do osobnego watku. Jednak nie rozumiem pewnej sytuacji, oto kod:

        new Thread() {

            public void run() {
                
                
                System.out.println("start watku");
                System.out.println("stop watku");
            }
        }.start();

w konsoli wypisuje mi sie (dlaczego dwa razy?):
start watku
stop watku
start watku
stop watku

Skoro chcę nie blokując interfejsu uzytkownika wykonac cos w innym watku jak parsowanie duzego dokumentu XML, a tu widze ze ten drugi watek jest wykonany 2 razy (pewnie przez glowny i ten otworzony). Tylko ze to troche bez sensu bo nie chce 2x zawalac pamieci tymi samymi danymi z XML....

0

Czy aby na pewno nie wywołujesz tego kodu dwa razy? :>

0

ten kod co zalaczylem powinien wykonac sie raz...
nie mam Thread'a przypisanego do zmiennej i pozniej juz nie mógłbym go uruchomić..

0

Jeżeli teoria nie zgadza się z faktami, to teoria jest błędna. Skoro dwa razy wypisuje się na konsoli to samo to znaczy, że metoda run jest uruchamiana dwa razy. A skąd i jak, to musisz wykryć.
Nie znaczy to, że samo run() jest uruchamiane. Wystarczy, że uruchamia się dwukrotnie kod, który podałeś. Prawdopodobnie to on jest wywoływany dwa razy. Możesz to sprawdzić przez uruchomienie potomka Thread, którego zaopatrzysz w jakiś licznik. Prawdopodobnie pokaże Ci dwie te liczby o tej samej wartości początkowej - czyli, że utworzą się dwa różne obiekty wątków.

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