Øystein T. Skrevet 3. mars 2009 Del Skrevet 3. mars 2009 (endret) Hei, korleis kan eg starte fleire trådar ved hjelp av ei løkke? Sjå kode under, pluss forklaring under der igjen. public class Main { public static void main( String[] args ) { for( int i = 0; i < 1000; i++) { (new Traad(i)).run(); } System.out.println("Ferdig!"); } } public class Traad extends Thread { private int i; public Traad( int initI ) { this i = initI; } @Override public run() { // do something this.interrupt(); } } Dette er ein forenkla versjon av det eg skal få til. Når eg no køyrer Main, so vil kvar iterasjon av for-løkka vente til kvar tråd er ferdig med det den skal gjere, istaden for at den starter eit object av Traad og går vidare til å starte eit nytt object av Traad. Korleis kan eg få til dette? Grunnen er at eg har eit ukjent antall av Traad-objekt eg skal starte, og vil dermed gjere dette i ei løkke. Takk for svar! Endret 4. mars 2009 av Øystein T. Lenke til kommentar
RavnTM Skrevet 3. mars 2009 Del Skrevet 3. mars 2009 For å starte en tråd, bruker du start(), ikke run(). Hvis du kaller run-metoden direkte, starter den ikke i en ny tråd, men hvis du kaller start-metoden, så kaller Thread-klassen run metoden for deg, i en ny tråd. Du kan også gjøre sånn her for det samme, bare uten mange klasser: public static void main(String[] args) { Runnable run = new Runnable() { public void run() { // Trådkode her } }; Thread t = new Thread(run); t.start(); // Starter tråden } (hvis jeg husker rett - har ikke programmert i Java på en stund) Lenke til kommentar
Øystein T. Skrevet 4. mars 2009 Forfatter Del Skrevet 4. mars 2009 Hehe, det kan stemme ja! Takk for hjelpa:) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå