Gå til innhold

"Riktig" bruk av tråder


Anbefalte innlegg

Skrevet

Skal lage highscore-liste et spill, og tenkte da å kjøre oppkoblingen mot nettet som en egen tråd. Har prøvd 2 muligheter, men merker ikke noe forskjell på dem, men er usikker på om begge av dem faktisk kjører nett-forespørselen i en egen tråd eller ikke.

 

Vil dette fungere?

Highscore hs = new Highscore();
Thread t = new Thread(hs);
t.setPriority(Thread.NORM_PRIORITY);
t.start();

hs.oppdaterHighscores();

 

Kjøres da "oppdaterHighscores" i den tråden?

(run()-metoden i Highscore inneholder ingenting)

 

En annen måte jeg har gjort det på er å bruke variabler i konstruktøren for å definere hva den skal gjøre:

Thread t = new Thread(new Highscore(Highscore.OPPDATER));
       t.setPriority(Thread.NORM_PRIORITY);
       t.start();

I run()-metoden har jeg da:

if (oppgave == OPPDATER) {
oppdaterHighscores();
)

Videoannonse
Annonse
Skrevet
Kjøres da "oppdaterHighscores" i den tråden?

(run()-metoden i Highscore inneholder ingenting)

 

Da vil det heller ikke skje noe.

start(); Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread.

 

Den siste der vil vell kjøre oppdaterHighscores() i en egen tråd, men den vil bare bli utført en gang.

Skrevet

Har du prøvd å utvide klassene dine ved bruk av Threads? Og deretter kjøre den nye klassen fra et annet sted i programmet?

 

Hvis du bruker Windows, kan du sjekke hvor mange tråder som kjører i programmet ditt ved å åpne oppgavebehandleren, velge "prosesser", og deretter trykke på "vis" og velge å vise kolonnen "tråder".

 

public class myClass extends Thread
{
  public void run()
  {
  }
}

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...