/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Vente på at tråde afslutter...?
Fra : Søren Møller Mogense~


Dato : 17-10-03 13:50

Hej Gruppe,

I min main starter jeg X-antal tråde.

Efter de er startet, vil jeg gerne vente på, at de alle afsluttet.
Men hvordan gør jeg lige det. Skal jeg evt. samle dem i en ThreadGroup???

Jeg har prøvet med en wait udmiddelbart efter der hvor jeg starter dem, men
det kan jeg ikke lige få til at virke.

Er der nogle som vil hjælpe mig???

Mvh.
Søren



 
 
Lars M (17-10-2003)
Kommentar
Fra : Lars M


Dato : 17-10-03 13:53


"Søren Møller Mogensen" <smm@mail1.stofanet.dk> wrote in message
news:3f8fe56c$0$14910$ba624c82@nntp05.dk.telia.net...
> Hej Gruppe,
>
> I min main starter jeg X-antal tråde.
>
> Efter de er startet, vil jeg gerne vente på, at de alle afsluttet.
> Men hvordan gør jeg lige det. Skal jeg evt. samle dem i en ThreadGroup???
>
> Jeg har prøvet med en wait udmiddelbart efter der hvor jeg starter dem,
men
> det kan jeg ikke lige få til at virke.
>
> Er der nogle som vil hjælpe mig???
>
> Mvh.
> Søren
>
>
Se javadoc til Thread.join().

Mvh
Latrs



Søren Møller Mogense~ (17-10-2003)
Kommentar
Fra : Søren Møller Mogense~


Dato : 17-10-03 14:27

Hvis jeg bruger en join så starter trådene bare en ad gangen. Det kan godt
være det er mig der er helt forkert på den.
Det jeg gør er, at jeg i min main løber igennem en Vector, og starter en
tråd for hvert element. Antallet af elementer variere.

Mine elementer i Vectoren er alle klasser som extender Thread.
I min for løkke lave jeg en ny Thread, kalder startet og join på den.
Men så stor den bare og venter på at den tråd bliver færdig før den
fortsætter med den næste i Vectoren.
Det var ikke meningen. Meningen er, at alle klasserne (trådene) i Vectoren
skal startes.

Jeg vil så vente på, at alle trådene afsluttes før jeg forsætter min main.

Det kan være det er mig der bruger join() forkert.

Nogle råd??


"Lars M" <lamosfjern@dettepost8.tele.dk> skrev i en meddelelse
news:3f8fe616$0$30078$edfadb0f@dtext01.news.tele.dk...
>
> "Søren Møller Mogensen" <smm@mail1.stofanet.dk> wrote in message
> news:3f8fe56c$0$14910$ba624c82@nntp05.dk.telia.net...
> > Hej Gruppe,
> >
> > I min main starter jeg X-antal tråde.
> >
> > Efter de er startet, vil jeg gerne vente på, at de alle afsluttet.
> > Men hvordan gør jeg lige det. Skal jeg evt. samle dem i en
ThreadGroup???
> >
> > Jeg har prøvet med en wait udmiddelbart efter der hvor jeg starter dem,
> men
> > det kan jeg ikke lige få til at virke.
> >
> > Er der nogle som vil hjælpe mig???
> >
> > Mvh.
> > Søren
> >
> >
> Se javadoc til Thread.join().
>
> Mvh
> Latrs
>
>



Lars M (17-10-2003)
Kommentar
Fra : Lars M


Dato : 17-10-03 18:26


"Søren Møller Mogensen" <smm@mail1.stofanet.dk> wrote in message
news:3f8fee3b$0$14898$ba624c82@nntp05.dk.telia.net...
> Hvis jeg bruger en join så starter trådene bare en ad gangen. Det kan godt
> være det er mig der er helt forkert på den.
> Det jeg gør er, at jeg i min main løber igennem en Vector, og starter en
> tråd for hvert element. Antallet af elementer variere.
>
> Mine elementer i Vectoren er alle klasser som extender Thread.
> I min for løkke lave jeg en ny Thread, kalder startet og join på den.
> Men så stor den bare og venter på at den tråd bliver færdig før den
> fortsætter med den næste i Vectoren.
> Det var ikke meningen. Meningen er, at alle klasserne (trådene) i Vectoren
> skal startes.
>
> Jeg vil så vente på, at alle trådene afsluttes før jeg forsætter min main.
>
> Det kan være det er mig der bruger join() forkert.
>
> Nogle råd??
>
Lav to gennemløb af din liste: et gennemløb der starter alle tråde, og
derefter et gennemløb der joiner alle tråde.

Mvh
Lars



Filip Larsen (17-10-2003)
Kommentar
Fra : Filip Larsen


Dato : 17-10-03 19:02

Søren Møller Mogensen skrev

> Mine elementer i Vectoren er alle klasser som extender Thread.
> I min for løkke lave jeg en ny Thread, kalder startet og join på den.
> Men så stor den bare og venter på at den tråd bliver færdig før den
> fortsætter med den næste i Vectoren.

Kaldet til join blokerer indtil den pågældende tråd er afsluttet, så hvis du
kalder join lige efter start vil din løkke hænge her ganske som du
beskriver.

Hvis du istedet først starter alle dine tråde og derefter i en ny løkke
kalder join på trådene en efter en burde det virke. Dette udnytter det
forhold, at join returnerer med det samme hvis man kalder metoden på en
allerede afsluttet tråd. Om dette er en garanteret egenskab ved join for
alle versioner af Java kan jeg på stående fod ikke huske, men det virker i
hvert fald for 1.4 (se evt. koden for Thread.join() for den version du
bruger).


Mvh,
--
Filip Larsen



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408188
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste